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