1 // RUN: %clang_cc1 %s -triple=amdgcn-amd-amdhsa -emit-llvm -o - -fcxx-exceptions -fexceptions | FileCheck %s 2 // RUN: %clang_cc1 %s -triple=spirv64-amd-amdhsa -emit-llvm -o - -fcxx-exceptions -fexceptions | FileCheck %s --check-prefix=WITH-NONZERO-DEFAULT-AS 3 4 struct X { }; 5 6 const X g(); 7 8 void f() { 9 try { 10 throw g(); 11 // CHECK: ptr addrspace(1) @_ZTI1X 12 } catch (const X x) { 13 // CHECK: catch ptr addrspace(1) @_ZTI1X 14 // 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 19 void h() { 20 try { 21 throw "ABC"; 22 // CHECK: ptr addrspace(1) @_ZTIPKc 23 } catch (char const(&)[4]) { 24 // CHECK: catch ptr addrspace(1) @_ZTIA4_c 25 // 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