Loading...
Searching...
No Matches
9#pragma warning(disable : 4251)
10#pragma warning(disable : 4275)
11#pragma warning(disable : 4996)
12#pragma warning(disable : 4267)
13#pragma warning(disable : 4244)
15#define __STDC_LIMIT_MACROS
17#define __STDC_CONSTANT_MACROS
21#include "archutils/Win32/arch_setup.h"
22#elif defined(__APPLE__)
23#include "archutils/Darwin/arch_setup.h"
24#elif defined(__unix__)
25#include "archutils/Unix/arch_setup.h"
28#if defined(HAVE_STDINT_H)
31#if defined(HAVE_INTTYPES_H)
37#define likely(x) (__builtin_expect(!!(x), 1))
38#define unlikely(x) (__builtin_expect(!!(x), 0))
41#define unlikely(x) (x)
44#if defined(NEED_CSTDLIB_WORKAROUND)
59#define NORETURN __declspec(noreturn)
60#elif defined(__GNUC__) && \
61 (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
62#define NORETURN __attribute__((__noreturn__))
77sm_crash(
const char* reason =
"Internal error");
86#define FAIL_M(MESSAGE) \
88 sm_crash(std::string(MESSAGE).c_str()); \
90#define ASSERT_M(COND, MESSAGE) \
92 if (unlikely(!(COND))) { \
93 FAIL_M(std::string(MESSAGE).c_str()); \
97#if !defined(CO_EXIST_WITH_MFC)
98#define ASSERT(COND) ASSERT_M((COND), "Assertion '" #COND "' failed")
102#define DEFAULT_FAIL(i) \
104 FAIL_M(ssprintf("%s = %i", #i, (i)))
107ShowWarningOrTrace(
const char* file,
116#define DEBUG_ASSERT_M(COND, MESSAGE) \
117 if (unlikely(!(COND))) \
119#define DEBUG_ASSERT(COND) DEBUG_ASSERT_M(COND, "Debug assert failed")
122#define DEBUG_ASSERT(x)
124#define DEBUG_ASSERT_M(x, y)
129#define SM_UNIQUE_NAME3(x, line) x##line
130#define SM_UNIQUE_NAME2(x, line) SM_UNIQUE_NAME3(x, line)
131#define SM_UNIQUE_NAME(x) SM_UNIQUE_NAME2(x, __LINE__)
133#include "RageUtil/Misc/RageException.h"