Commit 6037b3ca authored by Victor Zverovich's avatar Victor Zverovich

Fix dangling else problem in FMT_ASSERT

parent fafb03fa
...@@ -231,8 +231,9 @@ void assert_fail(const char* file, int line, const char* message); ...@@ -231,8 +231,9 @@ void assert_fail(const char* file, int line, const char* message);
# define FMT_ASSERT(condition, message) # define FMT_ASSERT(condition, message)
# else # else
# define FMT_ASSERT(condition, message) \ # define FMT_ASSERT(condition, message) \
if (!(condition)) \ ((condition) \
fmt::internal::assert_fail(__FILE__, __LINE__, (message)) ? void() \
: fmt::internal::assert_fail(__FILE__, __LINE__, (message)))
# endif # endif
#endif #endif
......
...@@ -20,3 +20,14 @@ TEST(AssertTest, Fail) { ...@@ -20,3 +20,14 @@ TEST(AssertTest, Fail) {
EXPECT_DEBUG_DEATH_IF_SUPPORTED(FMT_ASSERT(false, "don't panic!"), EXPECT_DEBUG_DEATH_IF_SUPPORTED(FMT_ASSERT(false, "don't panic!"),
"don't panic!"); "don't panic!");
} }
bool test_condition = false;
TEST(AssertTest, DanglingElse) {
bool executed_else = false;
if (test_condition)
FMT_ASSERT(true, "");
else
executed_else = true;
EXPECT_TRUE(executed_else);
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment