X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FWord.hs;h=eb0a9c33013e2c12bb9af52d3293518e16a83e58;hb=a34fb5505b42a5f019d1fdf0dd586a5239400346;hp=5a13fd09620dde50678caac1469c76b207404035;hpb=c37cf4507dd8093addd6ef6a91fd7046f2f1f2fb;p=ghc-base.git diff --git a/GHC/Word.hs b/GHC/Word.hs index 5a13fd0..eb0a9c3 100644 --- a/GHC/Word.hs +++ b/GHC/Word.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# OPTIONS_GHC -fno-implicit-prelude #-} ----------------------------------------------------------------------------- -- | -- Module : GHC.Word @@ -132,12 +132,15 @@ instance Integral Word where instance Bounded Word where minBound = 0 + + -- use unboxed literals for maxBound, because GHC doesn't optimise + -- (fromInteger 0xffffffff :: Word). #if WORD_SIZE_IN_BITS == 31 - maxBound = 0x7FFFFFFF + maxBound = W# (int2Word# 0x7FFFFFFF#) #elif WORD_SIZE_IN_BITS == 32 - maxBound = 0xFFFFFFFF + maxBound = W# (int2Word# 0xFFFFFFFF#) #else - maxBound = 0xFFFFFFFFFFFFFFFF + maxBound = W# (int2Word# 0xFFFFFFFFFFFFFFFF#) #endif instance Ix Word where