diff options
author | Björn Gustavsson <[email protected]> | 2011-09-07 10:00:37 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-09-14 16:42:48 +0200 |
commit | 4792b253584ca8d4429e1a353178db8cd0c470f4 (patch) | |
tree | bb1f8d24bd4a9847d2fba36e45815bcccdf6f0cb | |
parent | 262a9af33d3ceb4cb032c434b100cea7d4b0d60e (diff) | |
download | otp-4792b253584ca8d4429e1a353178db8cd0c470f4.tar.gz otp-4792b253584ca8d4429e1a353178db8cd0c470f4.tar.bz2 otp-4792b253584ca8d4429e1a353178db8cd0c470f4.zip |
sys_pre_expand: Don't duplicate options given in the source code
Any compiler options given with a -compile() attribute in source file
would be included both at the beginning and the end of the option list
for the compiler. Including the options twice is harmless during
compilation, but since the options will also be available in
Mod:module_info(compile), including them twice will waste memory.
Include the options from the source first in the list so that they
override options given on the command line.
-rw-r--r-- | lib/compiler/src/sys_pre_expand.erl | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/compiler/src/sys_pre_expand.erl b/lib/compiler/src/sys_pre_expand.erl index 480954adac..dd6f24e21f 100644 --- a/lib/compiler/src/sys_pre_expand.erl +++ b/lib/compiler/src/sys_pre_expand.erl @@ -223,10 +223,8 @@ attribute(export, Es, _L, St) -> St#expand{exports=union(from_list(Es), St#expand.exports)}; attribute(import, Is, _L, St) -> import(Is, St); -attribute(compile, C, _L, St) when is_list(C) -> - St#expand{compile=St#expand.compile ++ C}; -attribute(compile, C, _L, St) -> - St#expand{compile=St#expand.compile ++ [C]}; +attribute(compile, _C, _L, St) -> + St; attribute(Name, Val, Line, St) when is_list(Val) -> St#expand{attributes=St#expand.attributes ++ [{Name,Line,Val}]}; attribute(Name, Val, Line, St) -> |