From: Simon Marlow Date: Thu, 8 Jun 2006 14:34:38 +0000 (+0000) Subject: Make it so that StgWord/StgInt are longs X-Git-Tag: Before_FC_branch_merge~404 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=1046d33458f1f4a12c119dcf07fad9eaaa2a37f9 Make it so that StgWord/StgInt are longs This means we can use a %ld format specifier for StgWord/StgInt with printf and not get shouted at by gcc. --- 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