1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
module Settings.Warnings (defaultGhcWarningsArgs, ghcWarningsArgs) where
import Expression
import Oracles.Flag
import Packages
import Settings
-- See @mk/warnings.mk@ for warning-related arguments in the Make build system.
-- | Default Haskell warning-related arguments.
defaultGhcWarningsArgs :: Args
defaultGhcWarningsArgs = mconcat
[ notStage0 ? arg "-Wnoncanonical-monad-instances"
, (not <$> flag GccIsClang) ? mconcat
[ not windowsHost ? arg "-optc-Werror=unused-but-set-variable"
, arg "-optc-Wno-error=inline" ]
, flag GccIsClang ? arg "-optc-Wno-unknown-pragmas" ]
-- | Package-specific warnings-related arguments, mostly suppressing various warnings.
ghcWarningsArgs :: Args
ghcWarningsArgs = do
isIntegerSimple <- (== integerSimple) <$> getIntegerPackage
mconcat
[ stage0 ? mconcat
[ libraryPackage ? pure [ "-fno-warn-deprecated-flags" ]
, package terminfo ? pure [ "-fno-warn-unused-imports" ]
, package transformers ? pure [ "-fno-warn-unused-matches"
, "-fno-warn-unused-imports" ] ]
, notStage0 ? mconcat
[ libraryPackage ? pure [ "-Wno-deprecated-flags" ]
, package base ? pure [ "-Wno-trustworthy-safe" ]
, package binary ? pure [ "-Wno-deprecations" ]
, package bytestring ? pure [ "-Wno-inline-rule-shadowing" ]
, package compiler ? pure [ "-Wcpp-undef" ]
, package directory ? pure [ "-Wno-unused-imports" ]
, package ghc ? pure [ "-Wcpp-undef" ]
, package ghcPrim ? pure [ "-Wno-trustworthy-safe" ]
, package haddock ? pure [ "-Wno-unused-imports"
, "-Wno-deprecations" ]
, package haskeline ? pure [ "-Wno-deprecations"
, "-Wno-unused-imports"
, "-Wno-redundant-constraints"
, "-Wno-simplifiable-class-constraints" ]
, package pretty ? pure [ "-Wno-unused-imports" ]
, package primitive ? pure [ "-Wno-unused-imports"
, "-Wno-deprecations" ]
, package rts ? pure [ "-Wcpp-undef" ]
, package terminfo ? pure [ "-Wno-unused-imports" ]
, isIntegerSimple ?
package text ? pure [ "-Wno-unused-imports" ]
, package transformers ? pure [ "-Wno-unused-matches"
, "-Wno-unused-imports"
, "-Wno-redundant-constraints"
, "-Wno-orphans" ]
, package win32 ? pure [ "-Wno-trustworthy-safe" ]
, package xhtml ? pure [ "-Wno-unused-imports" ] ] ]
|