brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 248a451 Raw
24 lines · cpp
1// RUN: %clang_cc1 -std=c++1z -I%S %s -triple x86_64-linux-gnu -emit-llvm -o - -fcxx-exceptions | FileCheck %s2 3#include "typeinfo"4 5struct A {};6 7// CHECK-DAG: @_ZTIFvvE = linkonce_odr constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__function_type_infoE, i64 2), ptr @_ZTSFvvE }, comdat8// CHECK-DAG: @_ZTIPDoFvvE = linkonce_odr constant { ptr, ptr, i32, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv119__pointer_type_infoE, i64 2), ptr @_ZTSPDoFvvE, i32 64, ptr @_ZTIFvvE }, comdat9auto &ti_noexcept_ptr = typeid(void (A::*)() noexcept);10// CHECK-DAG: @_ZTIM1ADoFvvE = linkonce_odr constant { ptr, ptr, i32, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv129__pointer_to_member_type_infoE, i64 2), ptr @_ZTSM1ADoFvvE, i32 64, ptr @_ZTIFvvE, ptr @_ZTI1A }, comdat11auto &ti_noexcept_memptr = typeid(void (A::*)() noexcept);12 13// CHECK-LABEL: define{{.*}} void @_Z1fv(14__attribute__((noreturn)) void f() noexcept {15  // CHECK: call void @__cxa_throw({{.*}}@_ZTIPDoFvvE16  throw f;17}18 19// CHECK-LABEL: define{{.*}} void @_Z1gM1ADoFvvE(20void g(__attribute__((noreturn)) void (A::*p)() noexcept) {21  // CHECK: call void @__cxa_throw({{.*}}@_ZTIM1ADoFvvE22  throw p;23}24