blob: 5af1b0b479f8faa9b6e23bc723b65cbd7fafec49 [file] [log] [blame]
Reid Klecknerfff8e7f2015-03-03 19:21:04 +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
Reid Klecknerf7e1e752015-03-03 18:36:38 +00002// 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;
Reid Klecknerfff8e7f2015-03-03 19:21:04 +000017 // TRY: call void @llvm.eh.begincatch(i8* %{{.*}}, i8* %{{.*}})
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}