| // Test without PCH. | 
 | // RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -include %s %s -emit-llvm -o - | FileCheck %s | 
 | // | 
 | // Test with PCH. | 
 | // RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -x c++-header %s -emit-pch -o %t | 
 | // RUN: %clang_cc1 -std=c++11 -triple %itanium_abi_triple -fcxx-exceptions -fexceptions -include-pch %t %s -emit-llvm -o - | FileCheck %s | 
 |  | 
 | #ifndef HEADER | 
 | #define HEADER | 
 |  | 
 | struct A { | 
 |   struct { int a; } a; | 
 |   struct { int b; } b; | 
 | }; | 
 |  | 
 | #else | 
 |  | 
 | template<typename T> void f(T) {} | 
 |  | 
 | // CHECK-LABEL: define {{.*}}void @_Z1g1A( | 
 | void g(A a) { | 
 |   // CHECK: call {{.*}}void @_Z1fIN1AUt0_EEvT_( | 
 |   f(a.b); | 
 |   // CHECK: call {{.*}}void @_Z1fIN1AUt_EEvT_( | 
 |   f(a.a); | 
 | } | 
 |  | 
 | #endif |