brintos

brintos / llvm-project-archived public Read only

0
0
Text · 921 B · cde4c37 Raw
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