summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/assert.h5
-rw-r--r--src/common/common_funcs.h10
-rw-r--r--src/common/logging/backend.cpp8
3 files changed, 15 insertions, 8 deletions
diff --git a/src/common/assert.h b/src/common/assert.h
index 4b0e3f64e..5b67c5c52 100644
--- a/src/common/assert.h
+++ b/src/common/assert.h
@@ -41,8 +41,9 @@ __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_)
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h
index 6dc3e108f..052254678 100644
--- a/src/common/common_funcs.h
+++ b/src/common/common_funcs.h
@@ -19,13 +19,15 @@
/// Helper macros to insert unused bytes or words to properly align structs. These values will be
/// zero-initialized.
-#define INSERT_PADDING_BYTES(num_bytes) std::array<u8, num_bytes> CONCAT2(pad, __LINE__){};
-#define INSERT_PADDING_WORDS(num_words) std::array<u32, num_words> CONCAT2(pad, __LINE__){};
+#define INSERT_PADDING_BYTES(num_bytes) \
+ std::array<u8, num_bytes> CONCAT2(pad, __LINE__) {}
+#define INSERT_PADDING_WORDS(num_words) \
+ std::array<u32, num_words> CONCAT2(pad, __LINE__) {}
/// These are similar to the INSERT_PADDING_* macros, but are needed for padding unions. This is
/// because unions can only be initialized by one member.
-#define INSERT_UNION_PADDING_BYTES(num_bytes) std::array<u8, num_bytes> CONCAT2(pad, __LINE__);
-#define INSERT_UNION_PADDING_WORDS(num_words) std::array<u32, num_words> CONCAT2(pad, __LINE__);
+#define INSERT_UNION_PADDING_BYTES(num_bytes) std::array<u8, num_bytes> CONCAT2(pad, __LINE__)
+#define INSERT_UNION_PADDING_WORDS(num_words) std::array<u32, num_words> CONCAT2(pad, __LINE__)
#ifndef _MSC_VER
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 1111cfbad..8f2591d53 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -272,8 +272,10 @@ const char* GetLogClassName(Class log_class) {
#undef CLS
#undef SUB
case Class::Count:
- UNREACHABLE();
+ break;
}
+ UNREACHABLE();
+ return "Invalid";
}
const char* GetLevelName(Level log_level) {
@@ -288,9 +290,11 @@ const char* GetLevelName(Level log_level) {
LVL(Error);
LVL(Critical);
case Level::Count:
- UNREACHABLE();
+ break;
}
#undef LVL
+ UNREACHABLE();
+ return "Invalid";
}
void SetGlobalFilter(const Filter& filter) {