36 lines · plain
1// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -emit-llvm -fexceptions -fobjc-exceptions -fobjc-runtime=gcc -o - %s | FileCheck %s2// RUN: %clang_cc1 -triple x86_64-unknown-freebsd -emit-llvm -fexceptions -fobjc-exceptions -fobjc-runtime=gnustep-1.7 -o - %s | FileCheck -check-prefix=NEW-ABI %s3 4void opaque(void);5void log(int i);6 7@class C;8 9// CHECK: define{{.*}} void @test0() [[TF:#[0-9]+]]10// CHECK-SAME: personality ptr @__gnu_objc_personality_v011void test0(void) {12 @try {13 // CHECK: invoke void @opaque()14 opaque();15 16 // CHECK: call void @log(i32 noundef 1)17 18 } @catch (C *c) {19 // CHECK: landingpad { ptr, i32 }20 // CHECK-NEXT: catch ptr @021 // CHECK: br i122 23 // CHECK: call void @log(i32 noundef 0)24 25 // CHECK: resume26 // NEW-ABI: objc_begin_catch27 // NEW-ABI: objc_end_catch28 29 log(0);30 }31 32 log(1);33}34 35// CHECK: attributes [[TF]] = { noinline optnone "{{.*}} }36