[GHC] #8072: Optimizations change result of div for Word

GHC ghc-devs at haskell.org
Thu Jul 18 15:12:51 CEST 2013


#8072: Optimizations change result of div for Word
-----------------------------+-------------------------------------
       Reporter:  Khudyakov  |             Owner:
           Type:  bug        |            Status:  new
       Priority:  normal     |         Milestone:
      Component:  Compiler   |           Version:  7.6.3
       Keywords:             |  Operating System:  Unknown/Multiple
   Architecture:  x86        |   Type of failure:  None/Unknown
     Difficulty:  Unknown    |         Test Case:
     Blocked By:             |          Blocking:
Related Tickets:             |
-----------------------------+-------------------------------------
 Here is test case

 {{{
 import Data.Word

 main :: IO ()
 main = do
   print $ (maxBound :: Word) `div` 101
 }}}

 And result of execution
 {{{
 $ ghc -fforce-recomp -O2 --make reduce.hs && ./reduce
 [1 of 1] Compiling Main             ( reduce.hs, reduce.o )
 Linking reduce ...
 2891661149
 @{debian:0}~/qqq/mwc $ ghc -fforce-recomp --make reduce.hs && ./reduce
 [1 of 1] Compiling Main             ( reduce.hs, reduce.o )
 Linking reduce ...
 42524428
 }}}

 Bug is only present on 32-bit systems. It goes away if rewrite rules are
 disable with  -fno-enable-rewrite-rules or anything but maxBound is used
 as first argument or second argument is forced to be a funcion argument.
 So it could be bug in constant folding.

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




More information about the ghc-tickets mailing list