Home | History | Annotate | Download | only in PCH
      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