Home | History | Annotate | Download | only in PCH
      1 // Test that infinite loop in rdar://10418538 was fixed.
      2 
      3 // Without PCH
      4 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class -include %s -include %s %s
      5 
      6 // With PCH
      7 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s -chain-include %s -chain-include %s
      8 
      9 #ifndef HEADER1
     10 #define HEADER1
     11 //===----------------------------------------------------------------------===//
     12 // Primary header
     13 
     14 @class I;
     15 
     16 @interface I2
     17 @property (readonly) id prop1;
     18 @end
     19 
     20 //===----------------------------------------------------------------------===//
     21 #elif !defined(HEADER2)
     22 #define HEADER2
     23 #if !defined(HEADER1)
     24 #error Header inclusion order messed up
     25 #endif
     26 
     27 //===----------------------------------------------------------------------===//
     28 // Dependent header
     29 
     30 @interface I
     31 @end
     32 
     33 @interface I(Cat1)
     34 @end
     35 
     36 @interface I(Cat2)
     37 @end
     38 
     39 @interface I2()
     40 @property (readwrite,assign) id prop1;
     41 @property (copy) id prop2;
     42 @end
     43 
     44 //===----------------------------------------------------------------------===//
     45 #else
     46 //===----------------------------------------------------------------------===//
     47 
     48 // expected-note@30 {{receiver is instance of class declared here}}
     49 void f(I* i) {
     50   [i meth]; // expected-warning {{not found}}
     51 }
     52 
     53 @implementation I2
     54 @synthesize prop1, prop2;
     55 @end
     56 
     57 //===----------------------------------------------------------------------===//
     58 #endif
     59