diff options
author | Mike Stump <mrs@apple.com> | 2010-01-13 02:59:54 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2010-01-13 02:59:54 +0000 |
commit | 1bacb81d6f6165a80b3ba87f2d542e16607f080e (patch) | |
tree | 164f322369faef49bf8637ea388c6ad8262249c6 /clang/test/SemaCXX/unreachable-code.cpp | |
parent | d7d8f6d000b887b553df81dedc34c0d10397c1aa (diff) | |
download | bcm5719-llvm-1bacb81d6f6165a80b3ba87f2d542e16607f080e.tar.gz bcm5719-llvm-1bacb81d6f6165a80b3ba87f2d542e16607f080e.zip |
Add an unreachable code checker.
llvm-svn: 93287
Diffstat (limited to 'clang/test/SemaCXX/unreachable-code.cpp')
-rw-r--r-- | clang/test/SemaCXX/unreachable-code.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/unreachable-code.cpp b/clang/test/SemaCXX/unreachable-code.cpp new file mode 100644 index 00000000000..528bba7d5e1 --- /dev/null +++ b/clang/test/SemaCXX/unreachable-code.cpp @@ -0,0 +1,41 @@ +// RUN: %clang_cc1 -fsyntax-only -Wunreachable-code -fblocks -verify %s + +int j; +void bar() { } +int test1() { + for (int i = 0; + i != 10; + ++i) { // expected-warning {{will never be executed}} + if (j == 23) // missing {}'s + bar(); + return 1; + } + return 0; + return 1; // expected-warning {{will never be executed}} +} + +void test2(int i) { + switch (i) { + case 0: + break; + bar(); // expected-warning {{will never be executed}} + case 2: + switch (i) { + default: + a: goto a; + } + bar(); // expected-warning {{will never be executed}} + } + b: goto b; + bar(); // expected-warning {{will never be executed}} +} + +void test3() { + ^{ return; + bar(); // expected-warning {{will never be executed}} + }(); + while (++j) { + continue; + bar(); // expected-warning {{will never be executed}} + } +} |