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);
# define FMT_ASSERT(condition, message)
# else
# define FMT_ASSERT(condition, message) \
if (!(condition)) \
fmt::internal::assert_fail(__FILE__, __LINE__, (message))
((condition) \
? void() \
: fmt::internal::assert_fail(__FILE__, __LINE__, (message)))
# endif
#endif
......
......@@ -20,3 +20,14 @@ TEST(AssertTest, Fail) {
EXPECT_DEBUG_DEATH_IF_SUPPORTED(FMT_ASSERT(false, "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