brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 70147d9 Raw
37 lines · cpp
1// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple | FileCheck %s2// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple -std=c++98 -fexceptions -fcxx-exceptions | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EH3 4struct A {5  A();6  ~A();7};8 9struct B {10  B(A = A());11  ~B();12};13 14void f();15// CHECK-LABEL: define {{(dso_local )?}}void @_Z1gv()16void g() {17  // CHECK: br label %[[LOOP:.*]]18 19  // [[LOOP]]:20  // CHECK: {{call|invoke}} {{.*}} @_ZN1AC1Ev({{.*}} [[TEMPORARY:%.*]])21  // CHECK-EH:  unwind label %[[PARTIAL_ARRAY_LPAD:.*]]22  // CHECK: {{call|invoke}} {{.*}} @_ZN1BC1E1A({{.*}} [[TEMPORARY]])23  // CHECK-EH:  unwind label %[[A_AND_PARTIAL_ARRAY_LPAD:.*]]24  // CHECK: {{call|invoke}} {{.*}} @_ZN1AD1Ev({{.*}} [[TEMPORARY]])25  // CHECK-EH:  unwind label %[[PARTIAL_ARRAY_LPAD]]26  // CHECK: getelementptr {{.*}}, i{{[0-9]*}} 127  // CHECK: icmp eq28  // CHECK: br i1 {{.*}} label %[[LOOP]]29  B b[5];30 31  // CHECK: {{call|invoke}} void @_Z1fv()32  f();33 34  // CHECK-NOT: @_ZN1AD1Ev(35  // CHECK: {{call|invoke}} {{.*}} @_ZN1BD1Ev(36}37