1// Without PCH 2// RUN: %clang_cc1 -fsyntax-only -verify -include %s -include %s %s 3 4// With PCH 5// RUN: %clang_cc1 -fsyntax-only -verify %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 NSObject 15- (id)init; 16- (void)finalize; 17@end 18 19@interface NSObject (Properties) 20@property (readonly,nonatomic) int intProp; 21@end 22 23//===----------------------------------------------------------------------===// 24#elif !defined(HEADER2) 25#define HEADER2 26#if !defined(HEADER1) 27#error Header inclusion order messed up 28#endif 29 30//===----------------------------------------------------------------------===// 31// Dependent header 32 33@interface MyClass : NSObject 34+(void)meth; 35@end 36 37@interface NSObject(ObjExt) 38-(void)extMeth; 39@end 40 41@interface NSObject () 42@property (readwrite,nonatomic) int intProp; 43@end 44 45@class NSObject; 46 47//===----------------------------------------------------------------------===// 48#else 49//===----------------------------------------------------------------------===// 50 51@implementation MyClass 52+(void)meth {} 53-(void)finalize { 54 [super finalize]; 55} 56@end 57 58void test(NSObject *o) { 59 [o extMeth]; 60 61 // Make sure the property is treated as read-write. 62 o.intProp = 17; 63} 64 65//===----------------------------------------------------------------------===// 66#endif 67