37 lines · plain
1// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -emit-llvm -fcxx-exceptions -fexceptions -fobjc-exceptions -o - %s | FileCheck %s2 3@interface OCType @end4void opaque();5 6namespace test0 {7 8 // CHECK-LABEL: define{{.*}} void @_ZN5test03fooEv9 // CHECK-SAME: personality ptr @__objc_personality_v010 void foo() {11 try {12 // CHECK: invoke void @_Z6opaquev13 opaque();14 } catch (OCType *T) {15 // CHECK: landingpad { ptr, i32 }16 // CHECK-NEXT: catch ptr @"OBJC_EHTYPE_$_OCType"17 }18 }19}20 21@interface NSException22 + new;23@end24namespace test1 {25 26 void bar() {27 @try {28 throw [NSException new];29 } @catch (id i) {30 }31 }32// CHECK: invoke void @objc_exception_throw(ptr [[CALL:%.*]]) [[NR:#[0-9]+]]33// CHECK: to label [[INVOKECONT1:%.*]] unwind label [[LPAD:%.*]]34}35 36// CHECK: attributes [[NR]] = { noreturn }37