projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix int64ToInteger 0xFFFFFFFF00000000 on 32bit machine; trac #2223
[ghc-hetmet.git]
/
includes
/
mkDerivedConstants.c
diff --git
a/includes/mkDerivedConstants.c
b/includes/mkDerivedConstants.c
index
f87db37
..
56296ec
100644
(file)
--- a/
includes/mkDerivedConstants.c
+++ b/
includes/mkDerivedConstants.c
@@
-33,12
+33,19
@@
#define OFFSET(s_type, field) ((size_t)&(((s_type*)0)->field))
#define OFFSET(s_type, field) ((size_t)&(((s_type*)0)->field))
+#ifdef mingw32_HOST_OS
+#define SIZET_FMT "d"
+#else
+#define SIZET_FMT "zd"
+#endif
+
#if defined(GEN_HASKELL)
#if defined(GEN_HASKELL)
-#define def_offset(str, offset) \
- printf("oFFSET_" str " = %zd::Int\n", offset);
+#define def_offset(str, offset) \
+ printf("oFFSET_" str " :: Int\n"); \
+ printf("oFFSET_" str " = %" SIZET_FMT "\n", offset);
#else
#define def_offset(str, offset) \
#else
#define def_offset(str, offset) \
- printf("#define OFFSET_" str " %zd\n", offset);
+ printf("#define OFFSET_" str " %" SIZET_FMT "\n", offset);
#endif
#if defined(GEN_HASKELL)
#endif
#if defined(GEN_HASKELL)
@@
-81,8
+88,9
@@
struct_field_macro(str)
#if defined(GEN_HASKELL)
struct_field_macro(str)
#if defined(GEN_HASKELL)
-#define def_size(str, size) \
- printf("sIZEOF_" str " = %d::Int\n", size);
+#define def_size(str, size) \
+ printf("sIZEOF_" str " :: Int\n"); \
+ printf("sIZEOF_" str " = %d\n", size);
#else
#define def_size(str, size) \
printf("#define SIZEOF_" str " %d\n", size);
#else
#define def_size(str, size) \
printf("#define SIZEOF_" str " %d\n", size);