blob: 9e3eb163af5adb720d84478ace43d92100e2d731 [file] [log] [blame]
Mike Stump04c68512010-01-21 15:20:48 +00001// RUN: %clang %s -fsyntax-only -Xclang -verify -fblocks -Wunreachable-code -Wno-unused-value
2
Mike Stumpcc3a8532010-01-21 17:21:23 +00003int &halt() __attribute__((noreturn));
4int &live();
Mike Stump04c68512010-01-21 15:20:48 +00005int dead();
6int liveti() throw(int);
7int (*livetip)() throw(int);
8
9int test1() {
10 try {
11 live();
12 } catch (int i) {
13 live();
14 }
15 return 1;
16}
17
18void test2() {
19 try {
20 live();
21 } catch (int i) {
22 live();
23 }
24 try {
25 liveti();
26 } catch (int i) {
27 live();
28 }
29 try {
30 livetip();
31 } catch (int i) {
32 live();
33 }
34 throw 1;
35 dead(); // expected-warning {{will never be executed}}
36}
Mike Stumpcc3a8532010-01-21 17:21:23 +000037
38
39void test3() {
40 halt()
41 --; // expected-warning {{will never be executed}}
Mike Stumpc18c4032010-01-21 19:44:04 +000042 halt()
Mike Stumpfcd6f942010-01-21 22:12:18 +000043 ? // expected-warning {{will never be executed}}
Mike Stumpc18c4032010-01-21 19:44:04 +000044 dead() : dead();
Mike Stumpfcd6f942010-01-21 22:12:18 +000045 live(),
46 float // expected-warning {{will never be executed}}
47 (halt());
Mike Stumpcc3a8532010-01-21 17:21:23 +000048}