[GHC] #12056: Too aggressive `-w` option

GHC ghc-devs at haskell.org
Tue May 9 01:31:58 UTC 2017


#12056: Too aggressive `-w` option
-------------------------------------+-------------------------------------
        Reporter:  asr               |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:  newcomer
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect         |  Unknown/Multiple
  warning at compile-time            |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #11429, #11789    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by sgillespie):

 I hacked on this a bit over the weekend. The first thing I found was this:

 {{{
 $ ghc Main.hs -Wfoo -w -Wunrecognised-warning-flags -Wbar
 }}}

 Does not print warnings, as was noted in the ticket originally. Now if I
 add {{{-Wdeprecated-flags}}}, I now see all unrecognised warnings:

 {{{
 $ ghc Main.hs -Wfoo -w -Wunrecognised-warning-flags -Wdeprecated-flags
 -Wbar

 on the commandline: warning: unrecognised warning flag: -Wfoo

 on the commandline: warning: unrecognised warning flag: -Wbar
 }}}

 This is most likely due to the logic to show flag warnings

 {{{
 handleFlagWarnings :: DynFlags -> [Located String] -> IO ()
 handleFlagWarnings dflags warns
  = when (wopt Opt_WarnDeprecatedFlags dflags) $ do
         -- It would be nicer if warns :: [Located MsgDoc], but that
         -- has circular import problems.
       let bag = listToBag [ mkPlainWarnMsg dflags loc (text warn)
                           | L loc warn <- warns ]

       printOrThrowWarnings dflags bag

 }}}

 So it would seem that Option 2 above is already implemented, albeit with
 some restrictions.

 The most straightforward way to fix this would be to add
 `Opt_UnrecognisedWarningFlags` to `handleFlagWarnings`

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12056#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list