aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWeiyi Wang <wwylele@gmail.com>2019-10-05 10:45:01 -0400
committerFearlessTobi <thm.frey@gmail.com>2019-11-23 01:30:06 +0100
commit9a60d8a43047981640318990aebe31b1d99107fe (patch)
treec7f1a09cea335f5032533553aadc3508a08270a6 /src
parentbedc903c656faa0d39aaf7352eaecf2153a634e8 (diff)
unfold UNREACHABLE implementation for dumb compilers
We relies on UNREACHABLE's noreturn attribute to eliminate parent's "no return value" warning. However, this was wrapped in a `if(!false)` block, which compilers may not unfold to recognize the noreturn nature.
Diffstat (limited to 'src')
-rw-r--r--src/common/assert.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/common/assert.h b/src/common/assert.h
index 4b0e3f64ee..3b4d92b30d 100644
--- a/src/common/assert.h
+++ b/src/common/assert.h
@@ -41,8 +41,8 @@ __declspec(noinline, noreturn)
} \
while (0)
-#define UNREACHABLE() ASSERT_MSG(false, "Unreachable code!")
-#define UNREACHABLE_MSG(...) ASSERT_MSG(false, __VA_ARGS__)
+#define UNREACHABLE() assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!"); })
+#define UNREACHABLE_MSG(...) assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!\n" __VA_ARGS__); })
#ifdef _DEBUG
#define DEBUG_ASSERT(_a_) ASSERT(_a_)