From 00b55bfcd982bed2c9fc02d9c3ca66ba9d41bb5c Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Mon, 1 Nov 2021 21:18:04 -0400 Subject: Introduce -dlint flag As suggested in #20601, this is a short-hand for enabling the usual GHC-internal sanity checks one typically leans on when debugging runtime crashes. --- compiler/GHC/Driver/Session.hs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'compiler') 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 -- cgit v1.2.1