[GHC] #16018: Disabling core optimizations ignores code that would otherwise warn.

GHC ghc-devs at haskell.org
Sun Dec 9 01:39:00 UTC 2018


#16018: Disabling core optimizations ignores code that would otherwise warn.
-------------------------------------+-------------------------------------
           Reporter:  dmjio          |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.2
          Component:  Compiler       |           Version:  8.4.3
           Keywords:  core,          |  Operating System:  Unknown/Multiple
  optimizations, Wall                |
       Architecture:  x86            |   Type of failure:  None/Unknown
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Given the below code snippet,

 {{{#!hs
 module Main where

 main :: IO ()
 main = putStrLn "hey"

 data StopLight
   = Red
   | Green
   | Yellow
   deriving (Show, Eq)

 data Intersection
   = Intersection
   { light :: {-# UNPACK #-} !StopLight
   } deriving (Show, Eq)
 }}}

 The above code will warn with optimizations enabled (`ghc -Wall -O2
 Main.hs`), message below:
 '''
 Main.hs:13:5: warning:
     • Ignoring unusable UNPACK pragma
         on the first argument of ‘Intersection’
     • In the definition of data constructor ‘Intersection’
       In the data type declaration for ‘Intersection’
    |
 13 |   = Intersection
 '''

 Without optimizations, no warnings are emitted `ghc -Wall -O0 Main.hs`.

 The desired behavior should be a warning emitted in both cases.

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


More information about the ghc-tickets mailing list