| Index: src/checks.h
|
| diff --git a/src/checks.h b/src/checks.h
|
| index 13374d86dda4994474598dec85a232b70fdb483d..5ea59920ac1ee7497d7ee7c252e8906cb47600b6 100644
|
| --- a/src/checks.h
|
| +++ b/src/checks.h
|
| @@ -280,14 +280,13 @@ template <int> class StaticAssertionHelper { };
|
|
|
|
|
| // The ASSERT macro is equivalent to CHECK except that it only
|
| -// generates code in debug builds. Ditto STATIC_ASSERT.
|
| +// generates code in debug builds.
|
| #ifdef DEBUG
|
| #define ASSERT_RESULT(expr) CHECK(expr)
|
| #define ASSERT(condition) CHECK(condition)
|
| #define ASSERT_EQ(v1, v2) CHECK_EQ(v1, v2)
|
| #define ASSERT_NE(v1, v2) CHECK_NE(v1, v2)
|
| #define ASSERT_GE(v1, v2) CHECK_GE(v1, v2)
|
| -#define STATIC_ASSERT(test) STATIC_CHECK(test)
|
| #define SLOW_ASSERT(condition) if (FLAG_enable_slow_asserts) CHECK(condition)
|
| #else
|
| #define ASSERT_RESULT(expr) (expr)
|
| @@ -295,9 +294,14 @@ template <int> class StaticAssertionHelper { };
|
| #define ASSERT_EQ(v1, v2) ((void) 0)
|
| #define ASSERT_NE(v1, v2) ((void) 0)
|
| #define ASSERT_GE(v1, v2) ((void) 0)
|
| -#define STATIC_ASSERT(test) ((void) 0)
|
| #define SLOW_ASSERT(condition) ((void) 0)
|
| #endif
|
| +// Static asserts has no impact on runtime performance, so they can be
|
| +// safely enabled in release mode. Moreover, the ((void) 0) expression
|
| +// obeys different syntax rules than typedef's, e.g. it can't appear
|
| +// inside class declaration, this leads to inconsistency between debug
|
| +// and release compilation modes behaviour.
|
| +#define STATIC_ASSERT(test) STATIC_CHECK(test)
|
|
|
|
|
| #define ASSERT_TAG_ALIGNED(address) \
|
|
|