Home | History | Annotate | Download | only in PCH
      1 // Without PCH
      2 // RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 -fobjc-arc %s -include %s -include %s
      3 
      4 // With PCH
      5 // RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 -fobjc-arc %s -chain-include %s -chain-include %s
      6 
      7 // expected-no-diagnostics
      8 
      9 #ifndef HEADER1
     10 #define HEADER1
     11 //===----------------------------------------------------------------------===//
     12 // Primary header
     13 
     14 @interface I
     15 +(void)meth;
     16 @end
     17 
     18 //===----------------------------------------------------------------------===//
     19 #elif !defined(HEADER2)
     20 #define HEADER2
     21 #if !defined(HEADER1)
     22 #error Header inclusion order messed up
     23 #endif
     24 
     25 //===----------------------------------------------------------------------===//
     26 // Dependent header
     27 
     28 @interface I()
     29 @property (assign) id prop;
     30 +(void)meth2;
     31 @end
     32 
     33 //===----------------------------------------------------------------------===//
     34 #else
     35 //===----------------------------------------------------------------------===//
     36 
     37 void foo(I *i) {
     38   [I meth];
     39   [I meth2];
     40   i.prop = 0;
     41 }
     42 
     43 //===----------------------------------------------------------------------===//
     44 #endif
     45