// RUN: %clang_cc1 -fsyntax-only -fobjc-exceptions -verify -Wunreachable-code %s void f(void); void g1(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. } } void g2(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(); } } void g3(void) { @try { @try { f(); } @catch (...) { @throw @""; // should exit outer try } @throw @""; f(); // expected-warning{{never be executed}} } @catch (...) { } }