X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=includes%2FStgTypes.h;h=7f2c08e5e232f32c7b8905ea55158767f684b099;hp=ac2f78e27c0da63935185ed059f5a1b654449005;hb=2eb04ca0f8d0ec72b417cddc60672c696b4a3daa;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/includes/StgTypes.h b/includes/StgTypes.h index ac2f78e..7f2c08e 100644 --- a/includes/StgTypes.h +++ b/includes/StgTypes.h @@ -48,11 +48,14 @@ typedef unsigned char StgWord8; typedef signed short StgInt16; typedef unsigned short StgWord16; -#if SIZEOF_UNSIGNED_INT == 4 +#if SIZEOF_LONG == 4 +typedef signed long StgInt32; +typedef unsigned long StgWord32; +#elif SIZEOF_INT == 4 typedef signed int StgInt32; typedef unsigned int StgWord32; #else -#error GHC untested on this architecture: sizeof(unsigned int) != 4 +#error GHC untested on this architecture: sizeof(int) != 4 #endif #ifdef SUPPORT_LONG_LONGS @@ -77,6 +80,12 @@ typedef unsigned __int64 StgWord64; /* * Define the standard word size we'll use on this machine: make it * big enough to hold a pointer. + * + * It's useful if StgInt/StgWord are always the same as long, so that + * we can use a consistent printf format specifier without warnings on + * any platform. Fortunately this works at the moement; if it breaks + * in the future we'll have to start using macros for format + * specifiers (c.f. FMT_StgWord64 in Rts.h). */ #if SIZEOF_VOID_P == 8