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