[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / Sema / warn-unreachable.m
blobaba9d09fe3c41a1ac612ed097c47877e9f43f9a7
1 // RUN: %clang_cc1 -fsyntax-only -fobjc-exceptions -verify -Wunreachable-code %s
3 void f(void);
5 void g1(void) {
6   @try {
7     f();
8     @throw @"";
9     f();  // expected-warning{{will never be executed}}
10   } @catch(id i) {
11     f();
12   }
14   // Completely empty.
15   @try {
16   } @catch(...) {
17   }
19   @try {
20     f();
21     return;
22   } @catch(id i = nil) {  // Catch block should not be marked as unreachable.
23     // Empty @catch body.
24   }
27 void g2(void) {
28   @try {
29     // Nested @try.
30     @try {
31       f();
32       @throw @"";
33       f(); // expected-warning{{will never be executed}}
34     } @catch(...) {
35     }
36     f();
37     @throw @"";
38     f(); // expected-warning{{will never be executed}}
39   } @catch(...) {
40     f();
41   }
44 void g3(void) {
45   @try {
46     @try {
47       f();
48     } @catch (...) {
49       @throw @""; // should exit outer try
50     }
51     @throw @"";
52     f(); // expected-warning{{never be executed}}
53   } @catch (...) {
54   }