summaryrefslogtreecommitdiff
path: root/src/common/assert.h
diff options
context:
space:
mode:
authorGravatar Weiyi Wang2019-10-05 10:45:01 -0400
committerGravatar FearlessTobi2019-11-23 01:30:06 +0100
commit9a60d8a43047981640318990aebe31b1d99107fe (patch)
treec7f1a09cea335f5032533553aadc3508a08270a6 /src/common/assert.h
parentMerge pull request #3140 from FearlessTobi/port-4953 (diff)
downloadyuzu-9a60d8a43047981640318990aebe31b1d99107fe.tar.gz
yuzu-9a60d8a43047981640318990aebe31b1d99107fe.tar.xz
yuzu-9a60d8a43047981640318990aebe31b1d99107fe.zip
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/common/assert.h')
-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 4b0e3f64e..3b4d92b30 100644
--- a/src/common/assert.h
+++ b/src/common/assert.h
@@ -41,8 +41,8 @@ __declspec(noinline, noreturn)
41 } \ 41 } \
42 while (0) 42 while (0)
43 43
44#define UNREACHABLE() ASSERT_MSG(false, "Unreachable code!") 44#define UNREACHABLE() assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!"); })
45#define UNREACHABLE_MSG(...) ASSERT_MSG(false, __VA_ARGS__) 45#define UNREACHABLE_MSG(...) assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!\n" __VA_ARGS__); })
46 46
47#ifdef _DEBUG 47#ifdef _DEBUG
48#define DEBUG_ASSERT(_a_) ASSERT(_a_) 48#define DEBUG_ASSERT(_a_) ASSERT(_a_)