X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRts.h;h=51351fab0d595717926f0fb020ccfd97ce7bdd46;hb=34c8d0312071f7d0f4d221a997d3408c653ef9e5;hp=331840236469ea470316d2c3a9554a393185879c;hpb=57fad22f920f13527a0e6f1ee26eb326580fcb1a;p=ghc-hetmet.git diff --git a/includes/Rts.h b/includes/Rts.h index 3318402..51351fa 100644 --- a/includes/Rts.h +++ b/includes/Rts.h @@ -51,21 +51,13 @@ extern "C" { // Symbols that are extern, but private to the RTS, are declared // with visibility "hidden" to hide them outside the RTS shared // library. -#if !defined(mingw32_HOST_OS) +#if defined(HAS_VISIBILITY_HIDDEN) #define RTS_PRIVATE GNUC3_ATTRIBUTE(visibility("hidden")) #else #define RTS_PRIVATE /* disabled: RTS_PRIVATE */ #endif -#if __GNUC__ > 4 -#define BEGIN_RTS_PRIVATE #pragma GCC visibility push(hidden) -#define END_RTS_PRIVATE #pragma GCC visibility pop -#else -#define BEGIN_RTS_PRIVATE /* disabled: BEGIN_RTS_PRIVATE */ -#define END_RTS_PRIVATE /* disabled: END_RTS_PRIVATE */ -#endif - -#if __GNUC__ > 4 +#if __GNUC__ >= 4 #define RTS_UNLIKELY(p) __builtin_expect((p),0) #else #define RTS_UNLIKELY(p) p @@ -106,10 +98,18 @@ void _assertFail(const char *filename, unsigned int linenum) else \ _assertFail(__FILE__, __LINE__) +#define CHECKM(predicate, msg, ...) \ + if (predicate) \ + /*null*/; \ + else \ + barf(msg, ##__VA_ARGS__) + #ifndef DEBUG #define ASSERT(predicate) /* nothing */ +#define ASSERTM(predicate,msg,...) /* nothing */ #else #define ASSERT(predicate) CHECK(predicate) +#define ASSERTM(predicate,msg,...) CHECKM(predicate,msg,##__VA_ARGS__) #endif /* DEBUG */ /*