aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorChristopher Faulet <[email protected]>2009-12-15 16:56:13 +0100
committerBjörn Gustavsson <[email protected]>2010-01-19 16:23:33 +0100
commit96773ebcef2fe5949695a4fd923343ec4b049087 (patch)
tree38d4645c7cff88529049aadef1c1d67616bd0d61 /erts
parent5fdb43ee9adb9081998a2428ba2e5b001c067393 (diff)
downloadotp-96773ebcef2fe5949695a4fd923343ec4b049087.tar.gz
otp-96773ebcef2fe5949695a4fd923343ec4b049087.tar.bz2
otp-96773ebcef2fe5949695a4fd923343ec4b049087.zip
Add option -Werror in erlc(1)
Like in gcc, this option treats warnings as errors.
Diffstat (limited to 'erts')
-rw-r--r--erts/doc/src/erlc.xml4
-rw-r--r--erts/etc/common/erlc.c3
-rw-r--r--erts/test/erlc_SUITE.erl7
3 files changed, 14 insertions, 0 deletions
diff --git a/erts/doc/src/erlc.xml b/erts/doc/src/erlc.xml
index 3859ac8365..395daa87e7 100644
--- a/erts/doc/src/erlc.xml
+++ b/erts/doc/src/erlc.xml
@@ -104,6 +104,10 @@
must be quoted. Terms which contain spaces
must be quoted on all platforms.</p>
</item>
+ <tag>-W<em>error</em></tag>
+ <item>
+ <p>Makes all warnings into errors.</p>
+ </item>
<tag>-W<em>number</em></tag>
<item>
<p>Sets warning level to <em>number</em>. Default is <c><![CDATA[1]]></c>.
diff --git a/erts/etc/common/erlc.c b/erts/etc/common/erlc.c
index c958fed741..216ff7f40e 100644
--- a/erts/etc/common/erlc.c
+++ b/erts/etc/common/erlc.c
@@ -310,6 +310,8 @@ main(int argc, char** argv)
case 'W': /* Enable warnings. */
if (strcmp(argv[1]+2, "all") == 0) {
PUSH2("@warn", "999");
+ } else if (strcmp(argv[1]+2, "error") == 0) {
+ PUSH2("@option", "warnings_as_errors");
} else if (isdigit((int)argv[1][2])) {
PUSH2("@warn", argv[1]+2);
} else {
@@ -566,6 +568,7 @@ usage(void)
{"-pz path", "add path to the end of Erlang's code path"},
{"-smp", "compile using SMP emulator"},
{"-v", "verbose compiler output"},
+ {"-Werror", "make all warnings into errors"},
{"-W0", "disable warnings"},
{"-Wnumber", "set warning level to number"},
{"-Wall", "enable all warnings"},
diff --git a/erts/test/erlc_SUITE.erl b/erts/test/erlc_SUITE.erl
index 1d944811aa..c91471e412 100644
--- a/erts/test/erlc_SUITE.erl
+++ b/erts/test/erlc_SUITE.erl
@@ -56,6 +56,13 @@ compile_erl(Config) when is_list(Config) ->
?line run(Config, Cmd, FileName, "-W0", ["_OK_"]),
+ %% Try treating warnings as errors.
+
+ ?line run(Config, Cmd, FileName, "-Werror",
+ ["compile: warnings being treated as errors\$",
+ "Warning: function foo/0 is unused\$",
+ "_ERROR_"]),
+
%% Check a bad file.
?line BadFile = filename:join(SrcDir, "erl_test_bad.erl"),