diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2010-01-23 11:10:26 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2010-01-23 11:10:26 +0000 |
commit | 2fce988e86bc01829142e4362d4eff1af0925147 (patch) | |
tree | c69d3f4f13d508570bb5257a6aea735f88bdf09c /test/Sema/warn-unreachable.c | |
parent | a3fa5c7f1b5e2ba4d6ec033dc0e2376326b05824 (diff) | |
download | FreeBSD-src-2fce988e86bc01829142e4362d4eff1af0925147.zip FreeBSD-src-2fce988e86bc01829142e4362d4eff1af0925147.tar.gz |
Update clang to r94309.
Diffstat (limited to 'test/Sema/warn-unreachable.c')
-rw-r--r-- | test/Sema/warn-unreachable.c | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/test/Sema/warn-unreachable.c b/test/Sema/warn-unreachable.c index 2c123d0..1eef637 100644 --- a/test/Sema/warn-unreachable.c +++ b/test/Sema/warn-unreachable.c @@ -1,4 +1,8 @@ -// RUN: %clang %s -fsyntax-only -Xclang -verify -fblocks -Wunreachable-code +// RUN: %clang %s -fsyntax-only -Xclang -verify -fblocks -Wunreachable-code -Wno-unused-value + +int halt() __attribute__((noreturn)); +int live(); +int dead(); void test1() { goto c; @@ -18,3 +22,79 @@ void test1() { goto d; f: ; } + +void test2() { + int i; + switch (live()) { + case 1: + halt(), + dead(); // expected-warning {{will never be executed}} + + case 2: + live(), halt(), + dead(); // expected-warning {{will never be executed}} + + case 3: + live() + + // expected-warning {{will never be executed}} + halt(); + dead(); + + case 4: + a4: + live(), + halt(); + goto a4; // expected-warning {{will never be executed}} + + case 5: + goto a5; + c5: + dead(); // expected-warning {{will never be executed}} + goto b5; + a5: + live(), + halt(); + b5: + goto c5; + + case 6: + if (live()) + goto e6; + live(), + halt(); + d6: + dead(); // expected-warning {{will never be executed}} + goto b6; + c6: + dead(); + goto b6; + e6: + live(), + halt(); + b6: + goto c6; + case 7: + halt() + + // expected-warning {{will never be executed}} + dead(); + - // expected-warning {{will never be executed}} + halt(); + case 8: + i + += // expected-warning {{will never be executed}} + halt(); + case 9: + halt() + ? // expected-warning {{will never be executed}} + dead() : dead(); + case 10: + ( // expected-warning {{will never be executed}} + float)halt(); + case 11: { + int a[5]; + live(), + a[halt() + ]; // expected-warning {{will never be executed}} + } + } +} |