blob: feb82921923fb67ceea62de79812fa0ea08a25ce [file] [log] [blame]
Reid Kleckner18590252015-03-03 17:51:26 +00001// FIXME: Disabled until catch IRgen change lands.
Filipe Cabecinhasa96989d2015-03-03 18:32:38 +00002// RUNX: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -DTRY | FileCheck %s -check-prefix=TRY
Reid Klecknerf7e1e752015-03-03 18:36:38 +00003// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -DTHROW | FileCheck %s -check-prefix=THROW
Reid Klecknera82b5d82014-05-05 21:12:12 +00004
5void external();
6
7inline void not_emitted() {
8 throw int(13); // no error
9}
10
11int main() {
12 int rv = 0;
13#ifdef TRY
David Majnemerdbdab402015-02-25 23:01:21 +000014 try {
15 external(); // TRY: invoke void @"\01?external@@YAXXZ"
Reid Klecknera82b5d82014-05-05 21:12:12 +000016 } catch (int) {
17 rv = 1;
David Majnemerdbdab402015-02-25 23:01:21 +000018 // TRY: call i8* @llvm.eh.begincatch
19 // TRY: call void @llvm.eh.endcatch
Reid Klecknera82b5d82014-05-05 21:12:12 +000020 }
21#endif
22#ifdef THROW
David Majnemerdbdab402015-02-25 23:01:21 +000023 // THROW: call void @"\01?terminate@@YAXXZ"
24 throw int(42);
Reid Klecknera82b5d82014-05-05 21:12:12 +000025#endif
26 return rv;
27}