xref: /llvm-project/clang/test/Index/single-file-parse.m (revision d750e1c4917533ede5451d2eb3e94b803c48054f)
1ad870f82SArgyrios Kyrtzidis// RUN: c-index-test -single-file-parse %s | FileCheck %s
2ad870f82SArgyrios Kyrtzidis
3ad870f82SArgyrios Kyrtzidis#include <stdint.h>
4ad870f82SArgyrios Kyrtzidis
5ad870f82SArgyrios Kyrtzidis// CHECK-NOT: TypedefDecl=intptr_t
6ad870f82SArgyrios Kyrtzidis
7ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=MyCls
8ad870f82SArgyrios Kyrtzidis@interface MyCls
9ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:8: ObjCInstanceMethodDecl=some_meth
10ad870f82SArgyrios Kyrtzidis-(void)some_meth;
11ad870f82SArgyrios Kyrtzidis@end
12ad870f82SArgyrios Kyrtzidis
13ad870f82SArgyrios Kyrtzidis#if 1
14ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test1
15ad870f82SArgyrios Kyrtzidis@interface Test1 @end
16ad870f82SArgyrios Kyrtzidis#else
17ad870f82SArgyrios Kyrtzidis// CHECK-NOT: [[@LINE+1]]:12:
18ad870f82SArgyrios Kyrtzidis@interface Test2 @end
19ad870f82SArgyrios Kyrtzidis#endif
20ad870f82SArgyrios Kyrtzidis
21ad870f82SArgyrios Kyrtzidis#if 0
22ad870f82SArgyrios Kyrtzidis// CHECK-NOT: [[@LINE+1]]:12:
23ad870f82SArgyrios Kyrtzidis@interface Test3 @end
24ad870f82SArgyrios Kyrtzidis#else
25ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test4
26ad870f82SArgyrios Kyrtzidis@interface Test4 @end
27ad870f82SArgyrios Kyrtzidis#endif
28ad870f82SArgyrios Kyrtzidis
29ad870f82SArgyrios Kyrtzidis#if SOMETHING_NOT_DEFINED
30ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test5
31ad870f82SArgyrios Kyrtzidis@interface Test5 @end
32ad870f82SArgyrios Kyrtzidis#else
33ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test6
34ad870f82SArgyrios Kyrtzidis@interface Test6 @end
35ad870f82SArgyrios Kyrtzidis#endif
36ad870f82SArgyrios Kyrtzidis
37ad870f82SArgyrios Kyrtzidis#define SOMETHING_DEFINED 1
38ad870f82SArgyrios Kyrtzidis#if SOMETHING_DEFINED
39ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test7
40ad870f82SArgyrios Kyrtzidis@interface Test7 @end
41ad870f82SArgyrios Kyrtzidis#else
42ad870f82SArgyrios Kyrtzidis// CHECK-NOT: [[@LINE+1]]:12:
43ad870f82SArgyrios Kyrtzidis@interface Test8 @end
44ad870f82SArgyrios Kyrtzidis#endif
45ad870f82SArgyrios Kyrtzidis
46ad870f82SArgyrios Kyrtzidis#if defined(SOMETHING_NOT_DEFINED)
47ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test9
48ad870f82SArgyrios Kyrtzidis@interface Test9 @end
49ad870f82SArgyrios Kyrtzidis#else
50ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test10
51ad870f82SArgyrios Kyrtzidis@interface Test10 @end
52ad870f82SArgyrios Kyrtzidis#endif
53ad870f82SArgyrios Kyrtzidis
54ad870f82SArgyrios Kyrtzidis#if defined(SOMETHING_DEFINED)
55ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test11
56ad870f82SArgyrios Kyrtzidis@interface Test11 @end
57ad870f82SArgyrios Kyrtzidis#else
58ad870f82SArgyrios Kyrtzidis// CHECK-NOT: [[@LINE+1]]:12:
59ad870f82SArgyrios Kyrtzidis@interface Test12 @end
60ad870f82SArgyrios Kyrtzidis#endif
61ad870f82SArgyrios Kyrtzidis
62ad870f82SArgyrios Kyrtzidis#if SOMETHING_NOT_DEFINED1
63ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test13
64ad870f82SArgyrios Kyrtzidis@interface Test13 @end
65ad870f82SArgyrios Kyrtzidis#elif SOMETHING_NOT_DEFINED2
66ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test14
67ad870f82SArgyrios Kyrtzidis@interface Test14 @end
68ad870f82SArgyrios Kyrtzidis#else
69ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test15
70ad870f82SArgyrios Kyrtzidis@interface Test15 @end
71ad870f82SArgyrios Kyrtzidis#endif
72ad870f82SArgyrios Kyrtzidis
73ad870f82SArgyrios Kyrtzidis#ifdef SOMETHING_NOT_DEFINED
74ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test19
75ad870f82SArgyrios Kyrtzidis@interface Test19 @end
76ad870f82SArgyrios Kyrtzidis#else
77ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test20
78ad870f82SArgyrios Kyrtzidis@interface Test20 @end
79ad870f82SArgyrios Kyrtzidis#endif
80ad870f82SArgyrios Kyrtzidis
81ad870f82SArgyrios Kyrtzidis#ifdef SOMETHING_DEFINED
82ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test21
83ad870f82SArgyrios Kyrtzidis@interface Test21 @end
84ad870f82SArgyrios Kyrtzidis#else
85ad870f82SArgyrios Kyrtzidis// CHECK-NOT: [[@LINE+1]]:12:
86ad870f82SArgyrios Kyrtzidis@interface Test22 @end
87ad870f82SArgyrios Kyrtzidis#endif
88ad870f82SArgyrios Kyrtzidis
89ad870f82SArgyrios Kyrtzidis#ifndef SOMETHING_NOT_DEFINED
90ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test23
91ad870f82SArgyrios Kyrtzidis@interface Test23 @end
92ad870f82SArgyrios Kyrtzidis#else
93ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test24
94ad870f82SArgyrios Kyrtzidis@interface Test24 @end
95ad870f82SArgyrios Kyrtzidis#endif
96ad870f82SArgyrios Kyrtzidis
97ad870f82SArgyrios Kyrtzidis#ifndef SOMETHING_DEFINED
98ad870f82SArgyrios Kyrtzidis// CHECK-NOT: [[@LINE+1]]:12:
99ad870f82SArgyrios Kyrtzidis@interface Test25 @end
100ad870f82SArgyrios Kyrtzidis#else
101ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test26
102ad870f82SArgyrios Kyrtzidis@interface Test26 @end
103ad870f82SArgyrios Kyrtzidis#endif
104ad870f82SArgyrios Kyrtzidis
105ad870f82SArgyrios Kyrtzidis#if 1 < SOMETHING_NOT_DEFINED
106ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test27
107ad870f82SArgyrios Kyrtzidis@interface Test27 @end
108ad870f82SArgyrios Kyrtzidis#else
109ad870f82SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test28
110ad870f82SArgyrios Kyrtzidis@interface Test28 @end
111ad870f82SArgyrios Kyrtzidis#endif
112*d750e1c4SArgyrios Kyrtzidis
113*d750e1c4SArgyrios Kyrtzidis#if SOMETHING_NOT_DEFINED
114*d750e1c4SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test29
115*d750e1c4SArgyrios Kyrtzidis@interface Test29 @end
116*d750e1c4SArgyrios Kyrtzidis#endif
117*d750e1c4SArgyrios Kyrtzidis
118*d750e1c4SArgyrios Kyrtzidis#ifdef SOMETHING_NOT_DEFINED
119*d750e1c4SArgyrios Kyrtzidis// CHECK: [[@LINE+1]]:12: ObjCInterfaceDecl=Test30
120*d750e1c4SArgyrios Kyrtzidis@interface Test30 @end
121*d750e1c4SArgyrios Kyrtzidis#endif
122