// RUN: %clang_cc1 -fsyntax-only -fobjc-exceptions -verify -Wunreachable-code %s
voidf(void);voidg1(void){@try{f();@throw@"";f();// expected-warning{{will never be executed}}
}@catch(id i){f();}// Completely empty.
@try{}@catch(...){}@try{f();return;}@catch(id i =nil){// Catch block should not be marked as unreachable.
// Empty @catch body.
}}voidg2(void){@try{// Nested @try.
@try{f();@throw@"";f();// expected-warning{{will never be executed}}
}@catch(...){}f();@throw@"";f();// expected-warning{{will never be executed}}
}@catch(...){f();}}voidg3(void){@try{@try{f();}@catch(...){@throw@"";// should exit outer try
}@throw@"";f();// expected-warning{{never be executed}}
}@catch(...){}}