// Test that infinite loop in rdar://10418538 was fixed. // Without PCH // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class -include %s -include %s %s // With PCH // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s -chain-include %s -chain-include %s #ifndef HEADER1 #define HEADER1 //===----------------------------------------------------------------------===// // Primary header @class I; @interface I2 @property (readonly) id prop1; @end //===----------------------------------------------------------------------===// #elif !defined(HEADER2) #define HEADER2 #if !defined(HEADER1) #error Header inclusion order messed up #endif //===----------------------------------------------------------------------===// // Dependent header @interface I @end @interface I(Cat1) @end @interface I(Cat2) @end @interface I2() @property (readwrite,assign) id prop1; @property (copy) id prop2; @end //===----------------------------------------------------------------------===// #else //===----------------------------------------------------------------------===// // expected-note@30 {{receiver is instance of class declared here}} void f(I* i) { [i meth]; // expected-warning {{not found}} } @implementation I2 @synthesize prop1, prop2; @end //===----------------------------------------------------------------------===// #endif |