summaryrefslogtreecommitdiff
path: root/compiler/main/SysTools
diff options
context:
space:
mode:
authorRoland Senn <rsx@bluewin.ch>2018-11-22 11:52:33 -0500
committerBen Gamari <ben@smart-cactus.org>2018-11-22 13:14:02 -0500
commitf2d9fb0c288788abeb796a13d600295a526290cd (patch)
tree038c39c916296ffb011f1f8fc2aececbb5f2a04d /compiler/main/SysTools
parent014d6c1f08808c4dab6cba80efdc634527d91086 (diff)
downloadhaskell-f2d9fb0c288788abeb796a13d600295a526290cd.tar.gz
Calling gcc: Pass optc flags as last options (#14452)
Test Plan: make test TEST=T14452 Reviewers: hvr, bgamari, monoidal, thomie, osa1 Reviewed By: osa1 Subscribers: rwbarton, carter GHC Trac Issues: #14452 Differential Revision: https://phabricator.haskell.org/D5318
Diffstat (limited to 'compiler/main/SysTools')
-rw-r--r--compiler/main/SysTools/Tasks.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/main/SysTools/Tasks.hs b/compiler/main/SysTools/Tasks.hs
index 66cc1ec1b2..a986db2fc0 100644
--- a/compiler/main/SysTools/Tasks.hs
+++ b/compiler/main/SysTools/Tasks.hs
@@ -62,7 +62,9 @@ runCc :: DynFlags -> [Option] -> IO ()
runCc dflags args = do
let (p,args0) = pgm_c dflags
args1 = map Option (getOpts dflags opt_c)
- args2 = args0 ++ args1 ++ args
+ args2 = args0 ++ args ++ args1
+ -- We take care to pass -optc flags in args1 last to ensure that the
+ -- user can override flags passed by GHC. See #14452.
mb_env <- getGccEnv args2
runSomethingResponseFile dflags cc_filter "C Compiler" p args2 mb_env
where