blob: 6b9708566cb1c6ba2e5868da255539d33c1adc0e [file] [log] [blame]
Argyrios Kyrtzidisad834d52011-11-12 21:07:46 +00001// Test that infinite loop in rdar://10418538 was fixed.
2
3// Without PCH
4// RUN: %clang_cc1 -fsyntax-only -verify -include %s -include %s %s
5
6// With PCH
7// RUN: %clang_cc1 -fsyntax-only -verify %s -chain-include %s -chain-include %s
8
9#ifndef HEADER1
10#define HEADER1
11//===----------------------------------------------------------------------===//
12// Primary header
13
14@class I;
15
Argyrios Kyrtzidisc80553e2011-11-14 04:52:29 +000016@interface I2
17@property (readonly) id prop1;
18@end
19
Argyrios Kyrtzidisad834d52011-11-12 21:07:46 +000020//===----------------------------------------------------------------------===//
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
Argyrios Kyrtzidisc80553e2011-11-14 04:52:29 +000039@interface I2()
40@property (readwrite,assign) id prop1;
41@property (copy) id prop2;
42@end
43
Argyrios Kyrtzidisad834d52011-11-12 21:07:46 +000044//===----------------------------------------------------------------------===//
45#else
46//===----------------------------------------------------------------------===//
47
48void f(I* i) {
49 [i meth]; // expected-warning {{not found}}
50}
51
Argyrios Kyrtzidisc80553e2011-11-14 04:52:29 +000052@implementation I2
53@synthesize prop1, prop2;
54@end
55
Argyrios Kyrtzidisad834d52011-11-12 21:07:46 +000056//===----------------------------------------------------------------------===//
57#endif