xref: /aosp_15_r20/external/clang/test/PCH/chain-class-extension.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// Without PCH
2*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 -fobjc-arc %s -include %s -include %s
3*67e74705SXin Li
4*67e74705SXin Li// With PCH
5*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 -fobjc-arc %s -chain-include %s -chain-include %s
6*67e74705SXin Li
7*67e74705SXin Li// expected-no-diagnostics
8*67e74705SXin Li
9*67e74705SXin Li#ifndef HEADER1
10*67e74705SXin Li#define HEADER1
11*67e74705SXin Li//===----------------------------------------------------------------------===//
12*67e74705SXin Li// Primary header
13*67e74705SXin Li
14*67e74705SXin Li@interface I
15*67e74705SXin Li+(void)meth;
16*67e74705SXin Li@end
17*67e74705SXin Li
18*67e74705SXin Li//===----------------------------------------------------------------------===//
19*67e74705SXin Li#elif !defined(HEADER2)
20*67e74705SXin Li#define HEADER2
21*67e74705SXin Li#if !defined(HEADER1)
22*67e74705SXin Li#error Header inclusion order messed up
23*67e74705SXin Li#endif
24*67e74705SXin Li
25*67e74705SXin Li//===----------------------------------------------------------------------===//
26*67e74705SXin Li// Dependent header
27*67e74705SXin Li
28*67e74705SXin Li@interface I()
29*67e74705SXin Li@property (assign) id prop;
30*67e74705SXin Li+(void)meth2;
31*67e74705SXin Li@end
32*67e74705SXin Li
33*67e74705SXin Li//===----------------------------------------------------------------------===//
34*67e74705SXin Li#else
35*67e74705SXin Li//===----------------------------------------------------------------------===//
36*67e74705SXin Li
37*67e74705SXin Livoid foo(I *i) {
38*67e74705SXin Li  [I meth];
39*67e74705SXin Li  [I meth2];
40*67e74705SXin Li  i.prop = 0;
41*67e74705SXin Li}
42*67e74705SXin Li
43*67e74705SXin Li//===----------------------------------------------------------------------===//
44*67e74705SXin Li#endif
45