29 lines · cpp
1// RUN: %clang_cc1 %s -triple=amdgcn-amd-amdhsa -emit-llvm -o - -fcxx-exceptions -fexceptions | FileCheck %s2// RUN: %clang_cc1 %s -triple=spirv64-amd-amdhsa -emit-llvm -o - -fcxx-exceptions -fexceptions | FileCheck %s --check-prefix=WITH-NONZERO-DEFAULT-AS3 4struct X { };5 6const X g();7 8void f() {9 try {10 throw g();11 // CHECK: ptr addrspace(1) @_ZTI1X12 } catch (const X x) {13 // CHECK: catch ptr addrspace(1) @_ZTI1X14 // CHECK: call i32 @llvm.eh.typeid.for.p0(ptr addrspacecast (ptr addrspace(1) @_ZTI1X to ptr))15 // WITH-NONZERO-DEFAULT-AS: call{{.*}} i32 @llvm.eh.typeid.for.p4(ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZTI1X to ptr addrspace(4)))16 }17}18 19void h() {20 try {21 throw "ABC";22 // CHECK: ptr addrspace(1) @_ZTIPKc23 } catch (char const(&)[4]) {24 // CHECK: catch ptr addrspace(1) @_ZTIA4_c25 // CHECK: call i32 @llvm.eh.typeid.for.p0(ptr addrspacecast (ptr addrspace(1) @_ZTIA4_c to ptr))26 // WITH-NONZERO-DEFAULT-AS: call{{.*}} i32 @llvm.eh.typeid.for.p4(ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZTIA4_c to ptr addrspace(4)))27 }28}29