1 // RUN: %clang_cc1 -emit-pch -o %t.1 %s 2 // RUN: %clang_cc1 -error-on-deserialized-decl S1_keyfunc -error-on-deserialized-decl S3 -include-pch %t.1 -emit-pch -o %t.2 %s 3 // RUN: %clang_cc1 -error-on-deserialized-decl S1_method -error-on-deserialized-decl S3 -include-pch %t.2 -emit-llvm-only %s 4 5 #ifndef HEADER1 6 #define HEADER1 7 // Header. 8 9 struct S1 { 10 void S1_method(); 11 virtual void S1_keyfunc(); 12 }; 13 14 struct S3 {}; 15 16 struct S2 { 17 operator S3(); 18 }; 19 20 #elif !defined(HEADER2) 21 #define HEADER2 22 23 // Chained PCH. 24 S1 *s1; 25 S2 *s2; 26 27 #else 28 29 // Using the headers. 30 31 void test(S1*, S2*) { 32 } 33 34 #endif 35