|  | // RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple | FileCheck %s | 
|  | // 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-EH | 
|  |  | 
|  | struct A { | 
|  | A(); | 
|  | ~A(); | 
|  | }; | 
|  |  | 
|  | struct B { | 
|  | B(A = A()); | 
|  | ~B(); | 
|  | }; | 
|  |  | 
|  | void f(); | 
|  | // CHECK-LABEL: define {{(dso_local )?}}void @_Z1gv() | 
|  | void g() { | 
|  | // CHECK: br label %[[LOOP:.*]] | 
|  |  | 
|  | // [[LOOP]]: | 
|  | // CHECK: {{call|invoke}} {{.*}} @_ZN1AC1Ev([[TEMPORARY:.*]]) | 
|  | // CHECK-EH:  unwind label %[[PARTIAL_ARRAY_LPAD:.*]] | 
|  | // CHECK: {{call|invoke}} {{.*}} @_ZN1BC1E1A({{.*}}, [[TEMPORARY]]) | 
|  | // CHECK-EH:  unwind label %[[A_AND_PARTIAL_ARRAY_LPAD:.*]] | 
|  | // CHECK: {{call|invoke}} {{.*}} @_ZN1AD1Ev([[TEMPORARY]]) | 
|  | // CHECK-EH:  unwind label %[[PARTIAL_ARRAY_LPAD]] | 
|  | // CHECK: getelementptr {{.*}}, i{{[0-9]*}} 1 | 
|  | // CHECK: icmp eq | 
|  | // CHECK: br i1 {{.*}} label %[[LOOP]] | 
|  | B b[5]; | 
|  |  | 
|  | // CHECK: {{call|invoke}} void @_Z1fv() | 
|  | f(); | 
|  |  | 
|  | // CHECK-NOT: @_ZN1AD1Ev( | 
|  | // CHECK: {{call|invoke}} {{.*}} @_ZN1BD1Ev( | 
|  | } |