diff options
Diffstat (limited to 'test/CodeGenObjCXX/objfw-exceptions.mm')
-rw-r--r-- | test/CodeGenObjCXX/objfw-exceptions.mm | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGenObjCXX/objfw-exceptions.mm b/test/CodeGenObjCXX/objfw-exceptions.mm new file mode 100644 index 000000000000..2c3182f543ac --- /dev/null +++ b/test/CodeGenObjCXX/objfw-exceptions.mm @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -fexceptions -fobjc-exceptions -fobjc-runtime=objfw -fcxx-exceptions -o - %s | FileCheck %s -check-prefix=CHECK -check-prefix=CHECK-DWARF +// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -fexceptions -fobjc-exceptions -fobjc-runtime=objfw -fcxx-exceptions -fsjlj-exceptions -o - %s | FileCheck %s -check-prefix=CHECK -check-prefix=CHECK-SJLJ + +@interface OCType @end +void opaque(); + +// CHECK: define void @_Z3foov() +// CHECK-DWARF-SAME: personality i8* bitcast (i32 (...)* @__gnu_objc_personality_v0 to i8*) +// CHECK-SJLJ-SAME: personality i8* bitcast (i32 (...)* @__gnu_objc_personality_sj0 to i8*) +void foo() { +try { +// CHECK: invoke void @_Z6opaquev +opaque(); +} catch (OCType *T) { +// CHECK: landingpad { i8*, i32 } +} +} |