[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / AST / ast-dump-file-line-json.c
blobda1c8dbd755d5f072baf584ed8dee54d43d5405d
1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s
3 #line 4 "test.c"
4 int a;
6 #line 32 "bar.h"
7 int b;
8 int c;
10 #line 11 "test.c"
11 int d;
12 int e;
13 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
16 // CHECK-NOT: {{^}}Dumping
17 // CHECK: "kind": "TranslationUnitDecl",
18 // CHECK-NEXT: "loc": {},
19 // CHECK-NEXT: "range": {
20 // CHECK-NEXT: "begin": {},
21 // CHECK-NEXT: "end": {}
22 // CHECK-NEXT: },
23 // CHECK-NEXT: "inner": [
24 // CHECK-NEXT: {
25 // CHECK-NEXT: "id": "0x{{.*}}",
26 // CHECK-NEXT: "kind": "TypedefDecl",
27 // CHECK-NEXT: "loc": {},
28 // CHECK-NEXT: "range": {
29 // CHECK-NEXT: "begin": {},
30 // CHECK-NEXT: "end": {}
31 // CHECK-NEXT: },
32 // CHECK-NEXT: "isImplicit": true,
33 // CHECK-NEXT: "name": "__int128_t",
34 // CHECK-NEXT: "type": {
35 // CHECK-NEXT: "qualType": "__int128"
36 // CHECK-NEXT: },
37 // CHECK-NEXT: "inner": [
38 // CHECK-NEXT: {
39 // CHECK-NEXT: "id": "0x{{.*}}",
40 // CHECK-NEXT: "kind": "BuiltinType",
41 // CHECK-NEXT: "type": {
42 // CHECK-NEXT: "qualType": "__int128"
43 // CHECK-NEXT: }
44 // CHECK-NEXT: }
45 // CHECK-NEXT: ]
46 // CHECK-NEXT: },
47 // CHECK-NEXT: {
48 // CHECK-NEXT: "id": "0x{{.*}}",
49 // CHECK-NEXT: "kind": "TypedefDecl",
50 // CHECK-NEXT: "loc": {},
51 // CHECK-NEXT: "range": {
52 // CHECK-NEXT: "begin": {},
53 // CHECK-NEXT: "end": {}
54 // CHECK-NEXT: },
55 // CHECK-NEXT: "isImplicit": true,
56 // CHECK-NEXT: "name": "__uint128_t",
57 // CHECK-NEXT: "type": {
58 // CHECK-NEXT: "qualType": "unsigned __int128"
59 // CHECK-NEXT: },
60 // CHECK-NEXT: "inner": [
61 // CHECK-NEXT: {
62 // CHECK-NEXT: "id": "0x{{.*}}",
63 // CHECK-NEXT: "kind": "BuiltinType",
64 // CHECK-NEXT: "type": {
65 // CHECK-NEXT: "qualType": "unsigned __int128"
66 // CHECK-NEXT: }
67 // CHECK-NEXT: }
68 // CHECK-NEXT: ]
69 // CHECK-NEXT: },
70 // CHECK-NEXT: {
71 // CHECK-NEXT: "id": "0x{{.*}}",
72 // CHECK-NEXT: "kind": "TypedefDecl",
73 // CHECK-NEXT: "loc": {},
74 // CHECK-NEXT: "range": {
75 // CHECK-NEXT: "begin": {},
76 // CHECK-NEXT: "end": {}
77 // CHECK-NEXT: },
78 // CHECK-NEXT: "isImplicit": true,
79 // CHECK-NEXT: "name": "__NSConstantString",
80 // CHECK-NEXT: "type": {
81 // CHECK-NEXT: "qualType": "struct __NSConstantString_tag"
82 // CHECK-NEXT: },
83 // CHECK-NEXT: "inner": [
84 // CHECK-NEXT: {
85 // CHECK-NEXT: "id": "0x{{.*}}",
86 // CHECK-NEXT: "kind": "RecordType",
87 // CHECK-NEXT: "type": {
88 // CHECK-NEXT: "qualType": "struct __NSConstantString_tag"
89 // CHECK-NEXT: },
90 // CHECK-NEXT: "decl": {
91 // CHECK-NEXT: "id": "0x{{.*}}",
92 // CHECK-NEXT: "kind": "RecordDecl",
93 // CHECK-NEXT: "name": "__NSConstantString_tag"
94 // CHECK-NEXT: }
95 // CHECK-NEXT: }
96 // CHECK-NEXT: ]
97 // CHECK-NEXT: },
98 // CHECK-NEXT: {
99 // CHECK-NEXT: "id": "0x{{.*}}",
100 // CHECK-NEXT: "kind": "TypedefDecl",
101 // CHECK-NEXT: "loc": {},
102 // CHECK-NEXT: "range": {
103 // CHECK-NEXT: "begin": {},
104 // CHECK-NEXT: "end": {}
105 // CHECK-NEXT: },
106 // CHECK-NEXT: "isImplicit": true,
107 // CHECK-NEXT: "name": "__builtin_ms_va_list",
108 // CHECK-NEXT: "type": {
109 // CHECK-NEXT: "qualType": "char *"
110 // CHECK-NEXT: },
111 // CHECK-NEXT: "inner": [
112 // CHECK-NEXT: {
113 // CHECK-NEXT: "id": "0x{{.*}}",
114 // CHECK-NEXT: "kind": "PointerType",
115 // CHECK-NEXT: "type": {
116 // CHECK-NEXT: "qualType": "char *"
117 // CHECK-NEXT: },
118 // CHECK-NEXT: "inner": [
119 // CHECK-NEXT: {
120 // CHECK-NEXT: "id": "0x{{.*}}",
121 // CHECK-NEXT: "kind": "BuiltinType",
122 // CHECK-NEXT: "type": {
123 // CHECK-NEXT: "qualType": "char"
124 // CHECK-NEXT: }
125 // CHECK-NEXT: }
126 // CHECK-NEXT: ]
127 // CHECK-NEXT: }
128 // CHECK-NEXT: ]
129 // CHECK-NEXT: },
130 // CHECK-NEXT: {
131 // CHECK-NEXT: "id": "0x{{.*}}",
132 // CHECK-NEXT: "kind": "TypedefDecl",
133 // CHECK-NEXT: "loc": {},
134 // CHECK-NEXT: "range": {
135 // CHECK-NEXT: "begin": {},
136 // CHECK-NEXT: "end": {}
137 // CHECK-NEXT: },
138 // CHECK-NEXT: "isImplicit": true,
139 // CHECK-NEXT: "name": "__builtin_va_list",
140 // CHECK-NEXT: "type": {
141 // CHECK-NEXT: "qualType": "struct __va_list_tag[1]"
142 // CHECK-NEXT: },
143 // CHECK-NEXT: "inner": [
144 // CHECK-NEXT: {
145 // CHECK-NEXT: "id": "0x{{.*}}",
146 // CHECK-NEXT: "kind": "ConstantArrayType",
147 // CHECK-NEXT: "type": {
148 // CHECK-NEXT: "qualType": "struct __va_list_tag[1]"
149 // CHECK-NEXT: },
150 // CHECK-NEXT: "size": 1,
151 // CHECK-NEXT: "inner": [
152 // CHECK-NEXT: {
153 // CHECK-NEXT: "id": "0x{{.*}}",
154 // CHECK-NEXT: "kind": "RecordType",
155 // CHECK-NEXT: "type": {
156 // CHECK-NEXT: "qualType": "struct __va_list_tag"
157 // CHECK-NEXT: },
158 // CHECK-NEXT: "decl": {
159 // CHECK-NEXT: "id": "0x{{.*}}",
160 // CHECK-NEXT: "kind": "RecordDecl",
161 // CHECK-NEXT: "name": "__va_list_tag"
162 // CHECK-NEXT: }
163 // CHECK-NEXT: }
164 // CHECK-NEXT: ]
165 // CHECK-NEXT: }
166 // CHECK-NEXT: ]
167 // CHECK-NEXT: },
168 // CHECK-NEXT: {
169 // CHECK-NEXT: "id": "0x{{.*}}",
170 // CHECK-NEXT: "kind": "VarDecl",
171 // CHECK-NEXT: "loc": {
172 // CHECK-NEXT: "offset": {{[0-9]+}},
173 // CHECK-NEXT: "file": "{{.*}}",
174 // CHECK-NEXT: "line": 4,
175 // CHECK-NEXT: "presumedFile": "{{.*}}",
176 // CHECK-NEXT: "col": 5,
177 // CHECK-NEXT: "tokLen": 1
178 // CHECK-NEXT: },
179 // CHECK-NEXT: "range": {
180 // CHECK-NEXT: "begin": {
181 // CHECK-NEXT: "offset": {{[0-9]+}},
182 // CHECK-NEXT: "col": 1,
183 // CHECK-NEXT: "tokLen": 3
184 // CHECK-NEXT: },
185 // CHECK-NEXT: "end": {
186 // CHECK-NEXT: "offset": {{[0-9]+}},
187 // CHECK-NEXT: "col": 5,
188 // CHECK-NEXT: "tokLen": 1
189 // CHECK-NEXT: }
190 // CHECK-NEXT: },
191 // CHECK-NEXT: "name": "a",
192 // CHECK-NEXT: "mangledName": "a",
193 // CHECK-NEXT: "type": {
194 // CHECK-NEXT: "qualType": "int"
195 // CHECK-NEXT: }
196 // CHECK-NEXT: },
197 // CHECK-NEXT: {
198 // CHECK-NEXT: "id": "0x{{.*}}",
199 // CHECK-NEXT: "kind": "VarDecl",
200 // CHECK-NEXT: "loc": {
201 // CHECK-NEXT: "offset": {{[0-9]+}},
202 // CHECK-NEXT: "line": 7,
203 // CHECK-NEXT: "presumedFile": "bar.h",
204 // CHECK-NEXT: "presumedLine": 32,
205 // CHECK-NEXT: "col": 5,
206 // CHECK-NEXT: "tokLen": 1
207 // CHECK-NEXT: },
208 // CHECK-NEXT: "range": {
209 // CHECK-NEXT: "begin": {
210 // CHECK-NEXT: "offset": {{[0-9]+}},
211 // CHECK-NEXT: "col": 1,
212 // CHECK-NEXT: "tokLen": 3
213 // CHECK-NEXT: },
214 // CHECK-NEXT: "end": {
215 // CHECK-NEXT: "offset": {{[0-9]+}},
216 // CHECK-NEXT: "col": 5,
217 // CHECK-NEXT: "tokLen": 1
218 // CHECK-NEXT: }
219 // CHECK-NEXT: },
220 // CHECK-NEXT: "name": "b",
221 // CHECK-NEXT: "mangledName": "b",
222 // CHECK-NEXT: "type": {
223 // CHECK-NEXT: "qualType": "int"
224 // CHECK-NEXT: }
225 // CHECK-NEXT: },
226 // CHECK-NEXT: {
227 // CHECK-NEXT: "id": "0x{{.*}}",
228 // CHECK-NEXT: "kind": "VarDecl",
229 // CHECK-NEXT: "loc": {
230 // CHECK-NEXT: "offset": {{[0-9]+}},
231 // CHECK-NEXT: "line": 8,
232 // CHECK-NEXT: "presumedLine": 33,
233 // CHECK-NEXT: "col": 5,
234 // CHECK-NEXT: "tokLen": 1
235 // CHECK-NEXT: },
236 // CHECK-NEXT: "range": {
237 // CHECK-NEXT: "begin": {
238 // CHECK-NEXT: "offset": {{[0-9]+}},
239 // CHECK-NEXT: "col": 1,
240 // CHECK-NEXT: "tokLen": 3
241 // CHECK-NEXT: },
242 // CHECK-NEXT: "end": {
243 // CHECK-NEXT: "offset": {{[0-9]+}},
244 // CHECK-NEXT: "col": 5,
245 // CHECK-NEXT: "tokLen": 1
246 // CHECK-NEXT: }
247 // CHECK-NEXT: },
248 // CHECK-NEXT: "name": "c",
249 // CHECK-NEXT: "mangledName": "c",
250 // CHECK-NEXT: "type": {
251 // CHECK-NEXT: "qualType": "int"
252 // CHECK-NEXT: }
253 // CHECK-NEXT: },
254 // CHECK-NEXT: {
255 // CHECK-NEXT: "id": "0x{{.*}}",
256 // CHECK-NEXT: "kind": "VarDecl",
257 // CHECK-NEXT: "loc": {
258 // CHECK-NEXT: "offset": {{[0-9]+}},
259 // CHECK-NEXT: "line": 11,
260 // CHECK-NEXT: "presumedFile": "{{.*}}",
261 // CHECK-NEXT: "col": 5,
262 // CHECK-NEXT: "tokLen": 1
263 // CHECK-NEXT: },
264 // CHECK-NEXT: "range": {
265 // CHECK-NEXT: "begin": {
266 // CHECK-NEXT: "offset": {{[0-9]+}},
267 // CHECK-NEXT: "col": 1,
268 // CHECK-NEXT: "tokLen": 3
269 // CHECK-NEXT: },
270 // CHECK-NEXT: "end": {
271 // CHECK-NEXT: "offset": {{[0-9]+}},
272 // CHECK-NEXT: "col": 5,
273 // CHECK-NEXT: "tokLen": 1
274 // CHECK-NEXT: }
275 // CHECK-NEXT: },
276 // CHECK-NEXT: "name": "d",
277 // CHECK-NEXT: "mangledName": "d",
278 // CHECK-NEXT: "type": {
279 // CHECK-NEXT: "qualType": "int"
280 // CHECK-NEXT: }
281 // CHECK-NEXT: },
282 // CHECK-NEXT: {
283 // CHECK-NEXT: "id": "0x{{.*}}",
284 // CHECK-NEXT: "kind": "VarDecl",
285 // CHECK-NEXT: "loc": {
286 // CHECK-NEXT: "offset": {{[0-9]+}},
287 // CHECK-NEXT: "line": 12,
288 // CHECK-NEXT: "col": 5,
289 // CHECK-NEXT: "tokLen": 1
290 // CHECK-NEXT: },
291 // CHECK-NEXT: "range": {
292 // CHECK-NEXT: "begin": {
293 // CHECK-NEXT: "offset": {{[0-9]+}},
294 // CHECK-NEXT: "col": 1,
295 // CHECK-NEXT: "tokLen": 3
296 // CHECK-NEXT: },
297 // CHECK-NEXT: "end": {
298 // CHECK-NEXT: "offset": {{[0-9]+}},
299 // CHECK-NEXT: "col": 5,
300 // CHECK-NEXT: "tokLen": 1
301 // CHECK-NEXT: }
302 // CHECK-NEXT: },
303 // CHECK-NEXT: "name": "e",
304 // CHECK-NEXT: "mangledName": "e",
305 // CHECK-NEXT: "type": {
306 // CHECK-NEXT: "qualType": "int"
307 // CHECK-NEXT: }
308 // CHECK-NEXT: }
309 // CHECK-NEXT: ]
310 // CHECK-NEXT: }