[commit: ghc] master: Add -f[no-]warn-unsupported-llvm-version. Closes Trac #7579. (5cca0b4)
Austin Seipp
mad.one at gmail.com
Thu Jan 17 06:48:58 CET 2013
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/5cca0b443ed2b0328e58fb7881cb393c300f64ed
>---------------------------------------------------------------
commit 5cca0b443ed2b0328e58fb7881cb393c300f64ed
Author: Austin Seipp <mad.one at gmail.com>
Date: Sun Jan 13 22:23:37 2013 -0600
Add -f[no-]warn-unsupported-llvm-version. Closes Trac #7579.
This controls whether or not the compiler warns if we're using an LLVM
version that's too old or too new. It's mostly useful when building the
compiler knowingly with an unsupported version, so you don't get a lot
of warnings in the build process.
There's no documentation for this since it's a flag only a few
developers would care about anyway.
Signed-off-by: Austin Seipp <mad.one at gmail.com>
>---------------------------------------------------------------
compiler/llvmGen/LlvmCodeGen.hs | 5 +++--
compiler/main/DynFlags.hs | 5 ++++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/compiler/llvmGen/LlvmCodeGen.hs b/compiler/llvmGen/LlvmCodeGen.hs
index 4b8455f..04064bb 100644
--- a/compiler/llvmGen/LlvmCodeGen.hs
+++ b/compiler/llvmGen/LlvmCodeGen.hs
@@ -68,11 +68,12 @@ llvmCodeGen dflags h us cmms
ver <- (fromMaybe defaultLlvmVersion) `fmap` figureLlvmVersion dflags
-- cache llvm version for later use
writeIORef (llvmVersion dflags) ver
- when (ver < minSupportLlvmVersion) $
+ let doWarn = wopt Opt_WarnUnsupportedLlvmVersion dflags
+ when (ver < minSupportLlvmVersion && doWarn) $
errorMsg dflags (text "You are using an old version of LLVM that"
<> text " isn't supported anymore!"
$+$ text "We will try though...")
- when (ver > maxSupportLlvmVersion) $
+ when (ver > maxSupportLlvmVersion && doWarn) $
putMsg dflags (text "You are using a new version of LLVM that"
<> text " hasn't been tested yet!"
$+$ text "We will try though...")
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 4edeb23..f3e5df3 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -425,6 +425,7 @@ data WarningFlag =
| Opt_WarnSafe
| Opt_WarnPointlessPragmas
| Opt_WarnUnsupportedCallingConventions
+ | Opt_WarnUnsupportedLlvmVersion
| Opt_WarnInlineRuleShadowing
deriving (Eq, Show, Enum)
@@ -2398,7 +2399,8 @@ fWarningFlags = [
( "warn-safe", Opt_WarnSafe, setWarnSafe ),
( "warn-pointless-pragmas", Opt_WarnPointlessPragmas, nop ),
( "warn-unsupported-calling-conventions", Opt_WarnUnsupportedCallingConventions, nop ),
- ( "warn-inline-rule-shadowing", Opt_WarnInlineRuleShadowing, nop ) ]
+ ( "warn-inline-rule-shadowing", Opt_WarnInlineRuleShadowing, nop ),
+ ( "warn-unsupported-llvm-version", Opt_WarnUnsupportedLlvmVersion, nop ) ]
-- | These @-\<blah\>@ flags can all be reversed with @-no-\<blah\>@
negatableFlags :: [FlagSpec GeneralFlag]
@@ -2783,6 +2785,7 @@ standardWarnings
Opt_WarnAlternativeLayoutRuleTransitional,
Opt_WarnPointlessPragmas,
Opt_WarnUnsupportedCallingConventions,
+ Opt_WarnUnsupportedLlvmVersion,
Opt_WarnInlineRuleShadowing,
Opt_WarnDuplicateConstraints
]
More information about the ghc-commits
mailing list