diff options
Diffstat (limited to 'test/Sema/warn-unreachable.c')
-rw-r--r-- | test/Sema/warn-unreachable.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Sema/warn-unreachable.c b/test/Sema/warn-unreachable.c index 80f32cd732..8db36b7100 100644 --- a/test/Sema/warn-unreachable.c +++ b/test/Sema/warn-unreachable.c @@ -114,3 +114,15 @@ int test_enum_cases(enum Cases C) { } } +// Handle unreachable code triggered by macro expansions. +void __myassert_rtn(const char *, const char *, int, const char *) __attribute__((__noreturn__)); + +#define myassert(e) \ + (__builtin_expect(!(e), 0) ? __myassert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0) + +void test_assert() { + myassert(0 && "unreachable"); + return; // no-warning +} + + |