You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.3 KiB
59 lines
1.3 KiB
4 months ago
|
// 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
|