From 9a60d8a43047981640318990aebe31b1d99107fe Mon Sep 17 00:00:00 2001
From: Weiyi Wang <wwylele@gmail.com>
Date: Sat, 5 Oct 2019 10:45:01 -0400
Subject: 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.
---
 src/common/assert.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src')

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_)
-- 
cgit v1.2.3-70-g09d2


From 49e0a30dbdd89ece8ecbbc81cc53dc3f1616d58a Mon Sep 17 00:00:00 2001
From: Weiyi Wang <wwylele@gmail.com>
Date: Sat, 5 Oct 2019 10:54:07 -0400
Subject: fix clang-format and lambda capture

---
 src/common/assert.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/common/assert.h b/src/common/assert.h
index 3b4d92b30d..5b67c5c527 100644
--- a/src/common/assert.h
+++ b/src/common/assert.h
@@ -42,7 +42,8 @@ __declspec(noinline, noreturn)
     while (0)
 
 #define UNREACHABLE() assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!"); })
-#define UNREACHABLE_MSG(...) assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!\n" __VA_ARGS__); })
+#define UNREACHABLE_MSG(...)                                                                       \
+    assert_noinline_call([&] { LOG_CRITICAL(Debug, "Unreachable code!\n" __VA_ARGS__); })
 
 #ifdef _DEBUG
 #define DEBUG_ASSERT(_a_) ASSERT(_a_)
-- 
cgit v1.2.3-70-g09d2