aboutsummaryrefslogtreecommitdiffstats
path: root/translate/ghdldrv/ghdldrv.adb
diff options
context:
space:
mode:
Diffstat (limited to 'translate/ghdldrv/ghdldrv.adb')
-rw-r--r--translate/ghdldrv/ghdldrv.adb14
1 files changed, 8 insertions, 6 deletions
diff --git a/translate/ghdldrv/ghdldrv.adb b/translate/ghdldrv/ghdldrv.adb
index d863f6189..6612fb3fe 100644
--- a/translate/ghdldrv/ghdldrv.adb
+++ b/translate/ghdldrv/ghdldrv.adb
@@ -637,12 +637,6 @@ package body Ghdldrv is
Add_Argument (Compiler_Args, Str);
Add_Argument (Linker_Args, Str);
Res := Option_Ok;
- elsif Option'Length >= 2
- and then (Option (2) = 'O' or Option (2) = 'f')
- then
- -- Optimization option.
- Add_Argument (Compiler_Args, new String'(Option));
- Res := Option_Ok;
elsif Option = "-Q" then
Flag_Not_Quiet := True;
Res := Option_Ok;
@@ -653,6 +647,14 @@ package body Ghdldrv is
elsif Flags.Parse_Option (Option) then
Add_Argument (Compiler_Args, new String'(Option));
Res := Option_Ok;
+ elsif Option'Length >= 2
+ and then (Option (2) = 'O' or Option (2) = 'f')
+ then
+ -- Optimization option.
+ -- This is put after Flags.Parse_Option, since it may catch -fxxx
+ -- options.
+ Add_Argument (Compiler_Args, new String'(Option));
+ Res := Option_Ok;
else
Decode_Option (Command_Lib (Cmd), Option, Arg, Res);
end if;