aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/compile.erl
diff options
context:
space:
mode:
authorChristopher Faulet <[email protected]>2009-12-10 22:21:18 +0100
committerBjörn Gustavsson <[email protected]>2010-01-19 16:23:28 +0100
commit5fdb43ee9adb9081998a2428ba2e5b001c067393 (patch)
treedf6b18ad387be8e0743cfa9ce2b85bbf86b0671b /lib/compiler/src/compile.erl
parentfb499f15b8b372c8eeb5cf0c4b4af0e109a51ceb (diff)
downloadotp-5fdb43ee9adb9081998a2428ba2e5b001c067393.tar.gz
otp-5fdb43ee9adb9081998a2428ba2e5b001c067393.tar.bz2
otp-5fdb43ee9adb9081998a2428ba2e5b001c067393.zip
compile: add flag warnings_as_errors to treat warnings as errors
With this flag, warnings are treated as errors, like gcc flag '-Werror'.
Diffstat (limited to 'lib/compiler/src/compile.erl')
-rw-r--r--lib/compiler/src/compile.erl35
1 files changed, 24 insertions, 11 deletions
diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl
index a10c75c9da..8dd7cea38c 100644
--- a/lib/compiler/src/compile.erl
+++ b/lib/compiler/src/compile.erl
@@ -318,17 +318,30 @@ run_tc({Name,Fun}, St) ->
Val.
comp_ret_ok(#compile{code=Code,warnings=Warn0,module=Mod,options=Opts}=St) ->
- Warn = messages_per_file(Warn0),
- report_warnings(St#compile{warnings = Warn}),
- Ret1 = case member(binary, Opts) andalso not member(no_code_generation, Opts) of
- true -> [Code];
- false -> []
- end,
- Ret2 = case member(return_warnings, Opts) of
- true -> Ret1 ++ [Warn];
- false -> Ret1
- end,
- list_to_tuple([ok,Mod|Ret2]).
+ case member(warnings_as_errors, Opts) andalso length(Warn0) > 0 of
+ true ->
+ case member(report_warnings, Opts) of
+ true ->
+ io:format("~p: warnings being treated as errors\n",
+ [?MODULE]);
+ false ->
+ ok
+ end,
+ comp_ret_err(St);
+ false ->
+ Warn = messages_per_file(Warn0),
+ report_warnings(St#compile{warnings = Warn}),
+ Ret1 = case member(binary, Opts) andalso
+ not member(no_code_generation, Opts) of
+ true -> [Code];
+ false -> []
+ end,
+ Ret2 = case member(return_warnings, Opts) of
+ true -> Ret1 ++ [Warn];
+ false -> Ret1
+ end,
+ list_to_tuple([ok,Mod|Ret2])
+ end.
comp_ret_err(#compile{warnings=Warn0,errors=Err0,options=Opts}=St) ->
Warn = messages_per_file(Warn0),