16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -emit-llvm-only %s -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -verify -DTRY 26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -emit-llvm-only %s -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -verify -DTHROW 36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid external(); 56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesinline void not_emitted() { 76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines throw int(13); // no error 86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesint main() { 116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int rv = 0; 126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#ifdef TRY 136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines try { // expected-error {{cannot compile this try statement yet}} 146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines external(); 156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } catch (int) { 166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines rv = 1; 176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#endif 196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#ifdef THROW 206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines throw int(42); // expected-error {{cannot compile this throw expression yet}} 216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines#endif 226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return rv; 236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 24