150
|
1 // Without PCH
|
|
2 // RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 -fobjc-arc %s -include %s -include %s
|
|
3
|
|
4 // With PCH
|
|
5 // RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 -fobjc-arc %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 I
|
|
15 +(void)meth;
|
|
16 @end
|
|
17
|
|
18 //===----------------------------------------------------------------------===//
|
|
19 #elif !defined(HEADER2)
|
|
20 #define HEADER2
|
|
21 #if !defined(HEADER1)
|
|
22 #error Header inclusion order messed up
|
|
23 #endif
|
|
24
|
|
25 //===----------------------------------------------------------------------===//
|
|
26 // Dependent header
|
|
27
|
|
28 @interface I()
|
|
29 @property (assign) id prop;
|
|
30 +(void)meth2;
|
|
31 @end
|
|
32
|
|
33 //===----------------------------------------------------------------------===//
|
|
34 #else
|
|
35 //===----------------------------------------------------------------------===//
|
|
36
|
|
37 void foo(I *i) {
|
|
38 [I meth];
|
|
39 [I meth2];
|
|
40 i.prop = 0;
|
|
41 }
|
|
42
|
|
43 //===----------------------------------------------------------------------===//
|
|
44 #endif
|