summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Session.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Driver/Session.hs')
-rw-r--r--compiler/GHC/Driver/Session.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index be30e36052..d1c29bc824 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -2535,6 +2535,8 @@ dynamic_flags_deps = [
(setDumpFlag Opt_D_dump_hi_diffs)
, make_ord_flag defGhcFlag "ddump-rtti"
(setDumpFlag Opt_D_dump_rtti)
+ , make_ord_flag defGhcFlag "dlint"
+ (NoArg enableDLint)
, make_ord_flag defGhcFlag "dcore-lint"
(NoArg (setGeneralFlag Opt_DoCoreLinting))
, make_ord_flag defGhcFlag "dlinear-core-lint"
@@ -3922,6 +3924,22 @@ enableUnusedBinds = mapM_ setWarningFlag unusedBindsFlags
disableUnusedBinds :: DynP ()
disableUnusedBinds = mapM_ unSetWarningFlag unusedBindsFlags
+-- | Things you get with `-dlint`.
+enableDLint :: DynP ()
+enableDLint = do
+ mapM_ setGeneralFlag dLintFlags
+ addWayDynP WayDebug
+ where
+ dLintFlags :: [GeneralFlag]
+ dLintFlags =
+ [ Opt_DoCoreLinting
+ , Opt_DoStgLinting
+ , Opt_DoCmmLinting
+ , Opt_DoAsmLinting
+ , Opt_CatchNonexhaustiveCases
+ , Opt_LlvmFillUndefWithGarbage
+ ]
+
enableGlasgowExts :: DynP ()
enableGlasgowExts = do setGeneralFlag Opt_PrintExplicitForalls
mapM_ setExtensionFlag glasgowExtsFlags