blob: 6b83307b07ac95ecfd63b43baed4bdca76d136e4 [file] [log] [blame]
David Majnemerdbdab402015-02-25 23:01:21 +00001// RUN: %clang_cc1 -emit-llvm %s -o - -triple=i386-pc-win32 -mconstructor-aliases -fcxx-exceptions -fexceptions -fno-rtti -DTRY | FileCheck %s -check-prefix=TRY
2// 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 +00003
4void external();
5
6inline void not_emitted() {
7 throw int(13); // no error
8}
9
10int main() {
11 int rv = 0;
12#ifdef TRY
David Majnemerdbdab402015-02-25 23:01:21 +000013 try {
14 external(); // TRY: invoke void @"\01?external@@YAXXZ"
Reid Klecknera82b5d82014-05-05 21:12:12 +000015 } catch (int) {
16 rv = 1;
David Majnemerdbdab402015-02-25 23:01:21 +000017 // TRY: call i8* @llvm.eh.begincatch
18 // TRY: call void @llvm.eh.endcatch
Reid Klecknera82b5d82014-05-05 21:12:12 +000019 }
20#endif
21#ifdef THROW
David Majnemerdbdab402015-02-25 23:01:21 +000022 // THROW: call void @"\01?terminate@@YAXXZ"
23 throw int(42);
Reid Klecknera82b5d82014-05-05 21:12:12 +000024#endif
25 return rv;
26}