dopt_HscLang,
dopt_OutName,
+ -- sets of warning opts
+ standardWarnings,
+ minusWOpts,
+ minusWallOpts,
+
-- profiling opts
opt_AutoSccsOnAllToplevs,
opt_AutoSccsOnExportedToplevs,
opt_SimplNoPreInlining,
opt_SimplDoEtaReduction,
opt_SimplDoLambdaEtaExpansion,
- opt_SimplCaseOfCase,
opt_SimplCaseMerge,
- opt_SimplPedanticBottoms,
opt_SimplExcessPrecision,
-- Unfolding control
| CoreDoStrictness
| CoreDoWorkerWrapper
| CoreDoSpecialising
+ | CoreDoSpecConstr
| CoreDoUSPInf
| CoreDoCPResult
| CoreDoGlomBinds
| Opt_Generics
| Opt_NoImplicitPrelude
- -- misc
- | Opt_ReportCompile
deriving (Eq)
data DynFlags = DynFlags {
opt_c = [],
opt_a = [],
opt_m = [],
- flags = []
+ flags = standardWarnings,
}
{-
= HscC
| HscAsm
| HscJava
+#ifdef ILX
+ | HscILX
+#endif
| HscInterpreted
deriving (Eq, Show)
%************************************************************************
%* *
+\subsection{Warnings}
+%* *
+%************************************************************************
+
+\begin{code}
+standardWarnings
+ = [ Opt_WarnDeprecations,
+ Opt_WarnOverlappingPatterns,
+ Opt_WarnMissingFields,
+ Opt_WarnMissingMethods,
+ Opt_WarnDuplicateExports
+ ]
+
+minusWOpts
+ = standardWarnings ++
+ [ Opt_WarnUnusedBinds,
+ Opt_WarnUnusedMatches,
+ Opt_WarnUnusedImports,
+ Opt_WarnIncompletePatterns
+ ]
+
+minusWallOpts
+ = minusWOpts ++
+ [ Opt_WarnTypeDefaults,
+ Opt_WarnNameShadowing,
+ Opt_WarnMissingSigs,
+ Opt_WarnHiShadows
+ ]
+\end{code}
+
+%************************************************************************
+%* *
\subsection{Classifying command-line options}
%* *
%************************************************************************
opt_FoldrBuildOn = lookUp SLIT("-ffoldr-build-on")
opt_LiberateCaseThreshold = lookup_def_int "-fliberate-case-threshold" (10::Int)
opt_StgDoLetNoEscapes = lookUp SLIT("-flet-no-escape")
-opt_UnfoldCasms = lookUp SLIT("-funfold-casms-in-hi-file")
+opt_UnfoldCasms = lookUp SLIT("-funfold-casms-in-hi-file")
opt_UsageSPOn = lookUp SLIT("-fusagesp-on")
opt_UnboxStrictFields = lookUp SLIT("-funbox-strict-fields")
opt_KeepStgTypes = lookUp SLIT("-fkeep-stg-types")
-- Simplifier switches
-opt_SimplNoPreInlining = lookUp SLIT("-fno-pre-inlining")
+opt_SimplNoPreInlining = lookUp SLIT("-fno-pre-inlining")
-- NoPreInlining is there just to see how bad things
-- get if you don't do it!
-opt_SimplDoEtaReduction = lookUp SLIT("-fdo-eta-reduction")
-opt_SimplDoLambdaEtaExpansion = lookUp SLIT("-fdo-lambda-eta-expansion")
-opt_SimplCaseOfCase = lookUp SLIT("-fcase-of-case")
-opt_SimplCaseMerge = lookUp SLIT("-fcase-merge")
-opt_SimplPedanticBottoms = lookUp SLIT("-fpedantic-bottoms")
-opt_SimplExcessPrecision = lookUp SLIT("-fexcess-precision")
+opt_SimplDoEtaReduction = lookUp SLIT("-fdo-eta-reduction")
+opt_SimplDoLambdaEtaExpansion = lookUp SLIT("-fdo-lambda-eta-expansion")
+opt_SimplCaseMerge = lookUp SLIT("-fcase-merge")
+opt_SimplExcessPrecision = lookUp SLIT("-fexcess-precision")
-- Unfolding control
opt_UF_HiFileThreshold = lookup_def_int "-funfolding-interface-threshold" (45::Int)
opt_UF_CheapOp = ( 1 :: Int) -- Only one instruction; and the args are charged for
opt_UF_DearOp = ( 4 :: Int)
-opt_NoPruneDecls = lookUp SLIT("-fno-prune-decls")
-opt_NoPruneTyDecls = lookUp SLIT("-fno-prune-tydecls")
-opt_Static = lookUp SLIT("-static")
-opt_Unregisterised = lookUp SLIT("-funregisterised")
+opt_NoPruneDecls = lookUp SLIT("-fno-prune-decls")
+opt_NoPruneTyDecls = lookUp SLIT("-fno-prune-tydecls")
+opt_Static = lookUp SLIT("-static")
+opt_Unregisterised = lookUp SLIT("-funregisterised")
\end{code}
%************************************************************************
"fno-pre-inlining",
"fdo-eta-reduction",
"fdo-lambda-eta-expansion",
- "fcase-of-case",
"fcase-merge",
- "fpedantic-bottoms",
"fexcess-precision",
"funfolding-update-in-place",
- "freport-compile",
"fno-prune-decls",
"fno-prune-tydecls",
"static",