• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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#ifndef HEADER1
8#define HEADER1
9//===----------------------------------------------------------------------===//
10// Primary header
11
12@interface I
13+(void)meth;
14@end
15
16//===----------------------------------------------------------------------===//
17#elif !defined(HEADER2)
18#define HEADER2
19#if !defined(HEADER1)
20#error Header inclusion order messed up
21#endif
22
23//===----------------------------------------------------------------------===//
24// Dependent header
25
26@interface I()
27@property (assign) id prop;
28+(void)meth2;
29@end
30
31//===----------------------------------------------------------------------===//
32#else
33//===----------------------------------------------------------------------===//
34
35void foo(I *i) {
36  [I meth];
37  [I meth2];
38  i.prop = 0;
39}
40
41//===----------------------------------------------------------------------===//
42#endif
43