Fix GHC.Enum on 32bit platforms; fixes #8072
authorIan Lynagh <ian@well-typed.com>
Sun, 21 Jul 2013 18:09:45 +0000 (19:09 +0100)
committerIan Lynagh <ian@well-typed.com>
Sun, 21 Jul 2013 18:09:45 +0000 (19:09 +0100)
Diagnosed by int-e.

MachDeps.h wasn't being included in Enum.lhs, and the old
WORD_SIZE_IN_BITS test didn't fail when WORD_SIZE_IN_BITS isn't
defined. Now we get an error instead.

libraries/base/GHC/Enum.lhs

index 625214a..f2e0b5b 100644 (file)
@@ -17,6 +17,8 @@
 -- 
 -----------------------------------------------------------------------------
 
+#include "MachDeps.h"
+
 -- #hide
 module GHC.Enum(
         Bounded(..), Enum(..),
@@ -640,8 +642,10 @@ instance Bounded Word where
     -- (fromInteger 0xffffffff :: Word).
 #if WORD_SIZE_IN_BITS == 32
     maxBound = W# (int2Word# 0xFFFFFFFF#)
-#else
+#elif WORD_SIZE_IN_BITS == 64
     maxBound = W# (int2Word# 0xFFFFFFFFFFFFFFFF#)
+#else
+#error Unhandled value for WORD_SIZE_IN_BITS
 #endif
 \end{code}