projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix the format specifier for Int64/Word64 on Windows
[ghc-hetmet.git]
/
includes
/
Rts.h
diff --git
a/includes/Rts.h
b/includes/Rts.h
index
753a664
..
3318402
100644
(file)
--- a/
includes/Rts.h
+++ b/
includes/Rts.h
@@
-65,6
+65,12
@@
extern "C" {
#define END_RTS_PRIVATE /* disabled: END_RTS_PRIVATE */
#endif
#define END_RTS_PRIVATE /* disabled: END_RTS_PRIVATE */
#endif
+#if __GNUC__ > 4
+#define RTS_UNLIKELY(p) __builtin_expect((p),0)
+#else
+#define RTS_UNLIKELY(p) p
+#endif
+
/* Fix for mingw stat problem (done here so it's early enough) */
#ifdef mingw32_HOST_OS
#define __MSVCRT__ 1
/* Fix for mingw stat problem (done here so it's early enough) */
#ifdef mingw32_HOST_OS
#define __MSVCRT__ 1
@@
-137,9
+143,16
@@
void _assertFail(const char *filename, unsigned int linenum)
#define FMT_Word64 "lu"
#define FMT_Int64 "ld"
#else
#define FMT_Word64 "lu"
#define FMT_Int64 "ld"
#else
+#if defined(mingw32_HOST_OS)
+/* mingw doesn't understand %llu/%lld - it treats them as 32-bit
+ rather than 64-bit */
+#define FMT_Word64 "I64u"
+#define FMT_Int64 "I64d"
+#else
#define FMT_Word64 "llu"
#define FMT_Int64 "lld"
#endif
#define FMT_Word64 "llu"
#define FMT_Int64 "lld"
#endif
+#endif
/* -----------------------------------------------------------------------------
Include everything STG-ish
/* -----------------------------------------------------------------------------
Include everything STG-ish