xref: /llvm-project/clang/test/AST/ast-dump-attr-json.cpp (revision 0665669876cd7f51f7572cff3bb97485d78f5de5)
1 // RUN: %clang_cc1 -triple x86_64-pc-linux -Wdocumentation -ast-dump=json %s | FileCheck %s
2 
3 int global_decl;
4 extern __attribute__((alias("global_decl"))) int global_alias;
5 
6 void cleanup_function(int*);
some()7 void some() {
8   __attribute__((cleanup(cleanup_function))) int var;
9 }
10 
11 __attribute__((deprecated)) int deprecated_var0;
12 __attribute__((deprecated("reason"))) int deprecated_var1;
13 __attribute__((deprecated("reason", "replacement"))) int deprecated_var2;
14 
15 __attribute__((unavailable)) int unavailable_var0;
16 __attribute__((unavailable("reason"))) int unavailable_var1;
17 
18 __attribute__ ((section ("SECTION_NAME"))) int section_var;
19 
20 __attribute__ ((visibility ("hidden"))) int visibility_var;
21 
22 __thread __attribute__ ((tls_model ("local-exec"))) int tls_model_var;
23 
24 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
25 // using --filters=VarDecl
26 
27 
28 // CHECK-NOT: {{^}}Dumping
29 // CHECK:  "kind": "VarDecl",
30 // CHECK-NEXT:  "loc": {
31 // CHECK-NEXT:   "offset": 97,
32 // CHECK-NEXT:   "file": "{{.*}}",
33 // CHECK-NEXT:   "line": 3,
34 // CHECK-NEXT:   "col": 5,
35 // CHECK-NEXT:   "tokLen": 11
36 // CHECK-NEXT:  },
37 // CHECK-NEXT:  "range": {
38 // CHECK-NEXT:   "begin": {
39 // CHECK-NEXT:    "offset": 93,
40 // CHECK-NEXT:    "col": 1,
41 // CHECK-NEXT:    "tokLen": 3
42 // CHECK-NEXT:   },
43 // CHECK-NEXT:   "end": {
44 // CHECK-NEXT:    "offset": 97,
45 // CHECK-NEXT:    "col": 5,
46 // CHECK-NEXT:    "tokLen": 11
47 // CHECK-NEXT:   }
48 // CHECK-NEXT:  },
49 // CHECK-NEXT:  "isUsed": true,
50 // CHECK-NEXT:  "name": "global_decl",
51 // CHECK-NEXT:  "mangledName": "global_decl",
52 // CHECK-NEXT:  "type": {
53 // CHECK-NEXT:   "qualType": "int"
54 // CHECK-NEXT:  }
55 // CHECK-NEXT: }
56 
57 
58 // CHECK-NOT: {{^}}Dumping
59 // CHECK:  "kind": "VarDecl",
60 // CHECK-NEXT:  "loc": {
61 // CHECK-NEXT:   "offset": 159,
62 // CHECK-NEXT:   "line": 4,
63 // CHECK-NEXT:   "col": 50,
64 // CHECK-NEXT:   "tokLen": 12
65 // CHECK-NEXT:  },
66 // CHECK-NEXT:  "range": {
67 // CHECK-NEXT:   "begin": {
68 // CHECK-NEXT:    "offset": 110,
69 // CHECK-NEXT:    "col": 1,
70 // CHECK-NEXT:    "tokLen": 6
71 // CHECK-NEXT:   },
72 // CHECK-NEXT:   "end": {
73 // CHECK-NEXT:    "offset": 159,
74 // CHECK-NEXT:    "col": 50,
75 // CHECK-NEXT:    "tokLen": 12
76 // CHECK-NEXT:   }
77 // CHECK-NEXT:  },
78 // CHECK-NEXT:  "name": "global_alias",
79 // CHECK-NEXT:  "mangledName": "global_alias",
80 // CHECK-NEXT:  "type": {
81 // CHECK-NEXT:   "qualType": "int"
82 // CHECK-NEXT:  },
83 // CHECK-NEXT:  "storageClass": "extern",
84 // CHECK-NEXT:  "inner": [
85 // CHECK-NEXT:   {
86 // CHECK-NEXT:    "id": "0x{{.*}}",
87 // CHECK-NEXT:    "kind": "AliasAttr",
88 // CHECK-NEXT:    "range": {
89 // CHECK-NEXT:     "begin": {
90 // CHECK-NEXT:      "offset": 132,
91 // CHECK-NEXT:      "col": 23,
92 // CHECK-NEXT:      "tokLen": 5
93 // CHECK-NEXT:     },
94 // CHECK-NEXT:     "end": {
95 // CHECK-NEXT:      "offset": 151,
96 // CHECK-NEXT:      "col": 42,
97 // CHECK-NEXT:      "tokLen": 1
98 // CHECK-NEXT:     }
99 // CHECK-NEXT:    },
100 // CHECK-NEXT:    "aliasee": "global_decl"
101 // CHECK-NEXT:   }
102 // CHECK-NEXT:  ]
103 // CHECK-NEXT: }
104 
105 
106 // CHECK-NOT: {{^}}Dumping
107 // CHECK:  "kind": "VarDecl",
108 // CHECK-NEXT:  "loc": {
109 // CHECK-NEXT:   "offset": 266,
110 // CHECK-NEXT:   "col": 50,
111 // CHECK-NEXT:   "tokLen": 3
112 // CHECK-NEXT:  },
113 // CHECK-NEXT:  "range": {
114 // CHECK-NEXT:   "begin": {
115 // CHECK-NEXT:    "offset": 219,
116 // CHECK-NEXT:    "col": 3,
117 // CHECK-NEXT:    "tokLen": 13
118 // CHECK-NEXT:   },
119 // CHECK-NEXT:   "end": {
120 // CHECK-NEXT:    "offset": 266,
121 // CHECK-NEXT:    "col": 50,
122 // CHECK-NEXT:    "tokLen": 3
123 // CHECK-NEXT:   }
124 // CHECK-NEXT:  },
125 // CHECK-NEXT:  "name": "var",
126 // CHECK-NEXT:  "type": {
127 // CHECK-NEXT:   "qualType": "int"
128 // CHECK-NEXT:  },
129 // CHECK-NEXT:  "inner": [
130 // CHECK-NEXT:   {
131 // CHECK-NEXT:    "id": "0x{{.*}}",
132 // CHECK-NEXT:    "kind": "CleanupAttr",
133 // CHECK-NEXT:    "range": {
134 // CHECK-NEXT:     "begin": {
135 // CHECK-NEXT:      "offset": 234,
136 // CHECK-NEXT:      "col": 18,
137 // CHECK-NEXT:      "tokLen": 7
138 // CHECK-NEXT:     },
139 // CHECK-NEXT:     "end": {
140 // CHECK-NEXT:      "offset": 258,
141 // CHECK-NEXT:      "col": 42,
142 // CHECK-NEXT:      "tokLen": 1
143 // CHECK-NEXT:     }
144 // CHECK-NEXT:    },
145 // CHECK-NEXT:    "cleanup_function": {
146 // CHECK-NEXT:     "id": "0x{{.*}}",
147 // CHECK-NEXT:     "kind": "FunctionDecl",
148 // CHECK-NEXT:     "name": "cleanup_function",
149 // CHECK-NEXT:     "type": {
150 // CHECK-NEXT:      "qualType": "void (int *)"
151 // CHECK-NEXT:     }
152 // CHECK-NEXT:    }
153 // CHECK-NEXT:   }
154 // CHECK-NEXT:  ]
155 // CHECK-NEXT: }
156 
157 
158 // CHECK-NOT: {{^}}Dumping
159 // CHECK:  "kind": "VarDecl",
160 // CHECK-NEXT:  "loc": {
161 // CHECK-NEXT:   "offset": 306,
162 // CHECK-NEXT:   "line": 11,
163 // CHECK-NEXT:   "col": 33,
164 // CHECK-NEXT:   "tokLen": 15
165 // CHECK-NEXT:  },
166 // CHECK-NEXT:  "range": {
167 // CHECK-NEXT:   "begin": {
168 // CHECK-NEXT:    "offset": 274,
169 // CHECK-NEXT:    "col": 1,
170 // CHECK-NEXT:    "tokLen": 13
171 // CHECK-NEXT:   },
172 // CHECK-NEXT:   "end": {
173 // CHECK-NEXT:    "offset": 306,
174 // CHECK-NEXT:    "col": 33,
175 // CHECK-NEXT:    "tokLen": 15
176 // CHECK-NEXT:   }
177 // CHECK-NEXT:  },
178 // CHECK-NEXT:  "name": "deprecated_var0",
179 // CHECK-NEXT:  "mangledName": "deprecated_var0",
180 // CHECK-NEXT:  "type": {
181 // CHECK-NEXT:   "qualType": "int"
182 // CHECK-NEXT:  },
183 // CHECK-NEXT:  "inner": [
184 // CHECK-NEXT:   {
185 // CHECK-NEXT:    "id": "0x{{.*}}",
186 // CHECK-NEXT:    "kind": "DeprecatedAttr",
187 // CHECK-NEXT:    "range": {
188 // CHECK-NEXT:     "begin": {
189 // CHECK-NEXT:      "offset": 289,
190 // CHECK-NEXT:      "col": 16,
191 // CHECK-NEXT:      "tokLen": 10
192 // CHECK-NEXT:     },
193 // CHECK-NEXT:     "end": {
194 // CHECK-NEXT:      "offset": 289,
195 // CHECK-NEXT:      "col": 16,
196 // CHECK-NEXT:      "tokLen": 10
197 // CHECK-NEXT:     }
198 // CHECK-NEXT:    }
199 // CHECK-NEXT:   }
200 // CHECK-NEXT:  ]
201 // CHECK-NEXT: }
202 
203 
204 // CHECK-NOT: {{^}}Dumping
205 // CHECK:  "kind": "VarDecl",
206 // CHECK-NEXT:  "loc": {
207 // CHECK-NEXT:   "offset": 365,
208 // CHECK-NEXT:   "line": 12,
209 // CHECK-NEXT:   "col": 43,
210 // CHECK-NEXT:   "tokLen": 15
211 // CHECK-NEXT:  },
212 // CHECK-NEXT:  "range": {
213 // CHECK-NEXT:   "begin": {
214 // CHECK-NEXT:    "offset": 323,
215 // CHECK-NEXT:    "col": 1,
216 // CHECK-NEXT:    "tokLen": 13
217 // CHECK-NEXT:   },
218 // CHECK-NEXT:   "end": {
219 // CHECK-NEXT:    "offset": 365,
220 // CHECK-NEXT:    "col": 43,
221 // CHECK-NEXT:    "tokLen": 15
222 // CHECK-NEXT:   }
223 // CHECK-NEXT:  },
224 // CHECK-NEXT:  "name": "deprecated_var1",
225 // CHECK-NEXT:  "mangledName": "deprecated_var1",
226 // CHECK-NEXT:  "type": {
227 // CHECK-NEXT:   "qualType": "int"
228 // CHECK-NEXT:  },
229 // CHECK-NEXT:  "inner": [
230 // CHECK-NEXT:   {
231 // CHECK-NEXT:    "id": "0x{{.*}}",
232 // CHECK-NEXT:    "kind": "DeprecatedAttr",
233 // CHECK-NEXT:    "range": {
234 // CHECK-NEXT:     "begin": {
235 // CHECK-NEXT:      "offset": 338,
236 // CHECK-NEXT:      "col": 16,
237 // CHECK-NEXT:      "tokLen": 10
238 // CHECK-NEXT:     },
239 // CHECK-NEXT:     "end": {
240 // CHECK-NEXT:      "offset": 357,
241 // CHECK-NEXT:      "col": 35,
242 // CHECK-NEXT:      "tokLen": 1
243 // CHECK-NEXT:     }
244 // CHECK-NEXT:    },
245 // CHECK-NEXT:    "message": "reason"
246 // CHECK-NEXT:   }
247 // CHECK-NEXT:  ]
248 // CHECK-NEXT: }
249 
250 
251 // CHECK-NOT: {{^}}Dumping
252 // CHECK:  "kind": "VarDecl",
253 // CHECK-NEXT:  "loc": {
254 // CHECK-NEXT:   "offset": 439,
255 // CHECK-NEXT:   "line": 13,
256 // CHECK-NEXT:   "col": 58,
257 // CHECK-NEXT:   "tokLen": 15
258 // CHECK-NEXT:  },
259 // CHECK-NEXT:  "range": {
260 // CHECK-NEXT:   "begin": {
261 // CHECK-NEXT:    "offset": 382,
262 // CHECK-NEXT:    "col": 1,
263 // CHECK-NEXT:    "tokLen": 13
264 // CHECK-NEXT:   },
265 // CHECK-NEXT:   "end": {
266 // CHECK-NEXT:    "offset": 439,
267 // CHECK-NEXT:    "col": 58,
268 // CHECK-NEXT:    "tokLen": 15
269 // CHECK-NEXT:   }
270 // CHECK-NEXT:  },
271 // CHECK-NEXT:  "name": "deprecated_var2",
272 // CHECK-NEXT:  "mangledName": "deprecated_var2",
273 // CHECK-NEXT:  "type": {
274 // CHECK-NEXT:   "qualType": "int"
275 // CHECK-NEXT:  },
276 // CHECK-NEXT:  "inner": [
277 // CHECK-NEXT:   {
278 // CHECK-NEXT:    "id": "0x{{.*}}",
279 // CHECK-NEXT:    "kind": "DeprecatedAttr",
280 // CHECK-NEXT:    "range": {
281 // CHECK-NEXT:     "begin": {
282 // CHECK-NEXT:      "offset": 397,
283 // CHECK-NEXT:      "col": 16,
284 // CHECK-NEXT:      "tokLen": 10
285 // CHECK-NEXT:     },
286 // CHECK-NEXT:     "end": {
287 // CHECK-NEXT:      "offset": 431,
288 // CHECK-NEXT:      "col": 50,
289 // CHECK-NEXT:      "tokLen": 1
290 // CHECK-NEXT:     }
291 // CHECK-NEXT:    },
292 // CHECK-NEXT:    "message": "reason",
293 // CHECK-NEXT:    "replacement": "replacement"
294 // CHECK-NEXT:   }
295 // CHECK-NEXT:  ]
296 // CHECK-NEXT: }
297 
298 
299 // CHECK-NOT: {{^}}Dumping
300 // CHECK:  "kind": "VarDecl",
301 // CHECK-NEXT:  "loc": {
302 // CHECK-NEXT:   "offset": 490,
303 // CHECK-NEXT:   "line": 15,
304 // CHECK-NEXT:   "col": 34,
305 // CHECK-NEXT:   "tokLen": 16
306 // CHECK-NEXT:  },
307 // CHECK-NEXT:  "range": {
308 // CHECK-NEXT:   "begin": {
309 // CHECK-NEXT:    "offset": 457,
310 // CHECK-NEXT:    "col": 1,
311 // CHECK-NEXT:    "tokLen": 13
312 // CHECK-NEXT:   },
313 // CHECK-NEXT:   "end": {
314 // CHECK-NEXT:    "offset": 490,
315 // CHECK-NEXT:    "col": 34,
316 // CHECK-NEXT:    "tokLen": 16
317 // CHECK-NEXT:   }
318 // CHECK-NEXT:  },
319 // CHECK-NEXT:  "name": "unavailable_var0",
320 // CHECK-NEXT:  "mangledName": "unavailable_var0",
321 // CHECK-NEXT:  "type": {
322 // CHECK-NEXT:   "qualType": "int"
323 // CHECK-NEXT:  },
324 // CHECK-NEXT:  "inner": [
325 // CHECK-NEXT:   {
326 // CHECK-NEXT:    "id": "0x{{.*}}",
327 // CHECK-NEXT:    "kind": "UnavailableAttr",
328 // CHECK-NEXT:    "range": {
329 // CHECK-NEXT:     "begin": {
330 // CHECK-NEXT:      "offset": 472,
331 // CHECK-NEXT:      "col": 16,
332 // CHECK-NEXT:      "tokLen": 11
333 // CHECK-NEXT:     },
334 // CHECK-NEXT:     "end": {
335 // CHECK-NEXT:      "offset": 472,
336 // CHECK-NEXT:      "col": 16,
337 // CHECK-NEXT:      "tokLen": 11
338 // CHECK-NEXT:     }
339 // CHECK-NEXT:    }
340 // CHECK-NEXT:   }
341 // CHECK-NEXT:  ]
342 // CHECK-NEXT: }
343 
344 
345 // CHECK-NOT: {{^}}Dumping
346 // CHECK:  "kind": "VarDecl",
347 // CHECK-NEXT:  "loc": {
348 // CHECK-NEXT:   "offset": 551,
349 // CHECK-NEXT:   "line": 16,
350 // CHECK-NEXT:   "col": 44,
351 // CHECK-NEXT:   "tokLen": 16
352 // CHECK-NEXT:  },
353 // CHECK-NEXT:  "range": {
354 // CHECK-NEXT:   "begin": {
355 // CHECK-NEXT:    "offset": 508,
356 // CHECK-NEXT:    "col": 1,
357 // CHECK-NEXT:    "tokLen": 13
358 // CHECK-NEXT:   },
359 // CHECK-NEXT:   "end": {
360 // CHECK-NEXT:    "offset": 551,
361 // CHECK-NEXT:    "col": 44,
362 // CHECK-NEXT:    "tokLen": 16
363 // CHECK-NEXT:   }
364 // CHECK-NEXT:  },
365 // CHECK-NEXT:  "name": "unavailable_var1",
366 // CHECK-NEXT:  "mangledName": "unavailable_var1",
367 // CHECK-NEXT:  "type": {
368 // CHECK-NEXT:   "qualType": "int"
369 // CHECK-NEXT:  },
370 // CHECK-NEXT:  "inner": [
371 // CHECK-NEXT:   {
372 // CHECK-NEXT:    "id": "0x{{.*}}",
373 // CHECK-NEXT:    "kind": "UnavailableAttr",
374 // CHECK-NEXT:    "range": {
375 // CHECK-NEXT:     "begin": {
376 // CHECK-NEXT:      "offset": 523,
377 // CHECK-NEXT:      "col": 16,
378 // CHECK-NEXT:      "tokLen": 11
379 // CHECK-NEXT:     },
380 // CHECK-NEXT:     "end": {
381 // CHECK-NEXT:      "offset": 543,
382 // CHECK-NEXT:      "col": 36,
383 // CHECK-NEXT:      "tokLen": 1
384 // CHECK-NEXT:     }
385 // CHECK-NEXT:    },
386 // CHECK-NEXT:    "message": "reason"
387 // CHECK-NEXT:   }
388 // CHECK-NEXT:  ]
389 // CHECK-NEXT: }
390 
391 
392 // CHECK-NOT: {{^}}Dumping
393 // CHECK:  "kind": "VarDecl",
394 // CHECK-NEXT:  "loc": {
395 // CHECK-NEXT:   "offset": 617,
396 // CHECK-NEXT:   "line": 18,
397 // CHECK-NEXT:   "col": 48,
398 // CHECK-NEXT:   "tokLen": 11
399 // CHECK-NEXT:  },
400 // CHECK-NEXT:  "range": {
401 // CHECK-NEXT:   "begin": {
402 // CHECK-NEXT:    "offset": 570,
403 // CHECK-NEXT:    "col": 1,
404 // CHECK-NEXT:    "tokLen": 13
405 // CHECK-NEXT:   },
406 // CHECK-NEXT:   "end": {
407 // CHECK-NEXT:    "offset": 617,
408 // CHECK-NEXT:    "col": 48,
409 // CHECK-NEXT:    "tokLen": 11
410 // CHECK-NEXT:   }
411 // CHECK-NEXT:  },
412 // CHECK-NEXT:  "name": "section_var",
413 // CHECK-NEXT:  "mangledName": "section_var",
414 // CHECK-NEXT:  "type": {
415 // CHECK-NEXT:   "qualType": "int"
416 // CHECK-NEXT:  },
417 // CHECK-NEXT:  "inner": [
418 // CHECK-NEXT:   {
419 // CHECK-NEXT:    "id": "0x{{.*}}",
420 // CHECK-NEXT:    "kind": "SectionAttr",
421 // CHECK-NEXT:    "range": {
422 // CHECK-NEXT:     "begin": {
423 // CHECK-NEXT:      "offset": 586,
424 // CHECK-NEXT:      "col": 17,
425 // CHECK-NEXT:      "tokLen": 7
426 // CHECK-NEXT:     },
427 // CHECK-NEXT:     "end": {
428 // CHECK-NEXT:      "offset": 609,
429 // CHECK-NEXT:      "col": 40,
430 // CHECK-NEXT:      "tokLen": 1
431 // CHECK-NEXT:     }
432 // CHECK-NEXT:    },
433 // CHECK-NEXT:    "section_name": "SECTION_NAME"
434 // CHECK-NEXT:   }
435 // CHECK-NEXT:  ]
436 // CHECK-NEXT: }
437 
438 
439 // CHECK-NOT: {{^}}Dumping
440 // CHECK:  "kind": "VarDecl",
441 // CHECK-NEXT:  "loc": {
442 // CHECK-NEXT:   "offset": 675,
443 // CHECK-NEXT:   "line": 20,
444 // CHECK-NEXT:   "col": 45,
445 // CHECK-NEXT:   "tokLen": 14
446 // CHECK-NEXT:  },
447 // CHECK-NEXT:  "range": {
448 // CHECK-NEXT:   "begin": {
449 // CHECK-NEXT:    "offset": 631,
450 // CHECK-NEXT:    "col": 1,
451 // CHECK-NEXT:    "tokLen": 13
452 // CHECK-NEXT:   },
453 // CHECK-NEXT:   "end": {
454 // CHECK-NEXT:    "offset": 675,
455 // CHECK-NEXT:    "col": 45,
456 // CHECK-NEXT:    "tokLen": 14
457 // CHECK-NEXT:   }
458 // CHECK-NEXT:  },
459 // CHECK-NEXT:  "name": "visibility_var",
460 // CHECK-NEXT:  "mangledName": "visibility_var",
461 // CHECK-NEXT:  "type": {
462 // CHECK-NEXT:   "qualType": "int"
463 // CHECK-NEXT:  },
464 // CHECK-NEXT:  "inner": [
465 // CHECK-NEXT:   {
466 // CHECK-NEXT:    "id": "0x{{.*}}",
467 // CHECK-NEXT:    "kind": "VisibilityAttr",
468 // CHECK-NEXT:    "range": {
469 // CHECK-NEXT:     "begin": {
470 // CHECK-NEXT:      "offset": 647,
471 // CHECK-NEXT:      "col": 17,
472 // CHECK-NEXT:      "tokLen": 10
473 // CHECK-NEXT:     },
474 // CHECK-NEXT:     "end": {
475 // CHECK-NEXT:      "offset": 667,
476 // CHECK-NEXT:      "col": 37,
477 // CHECK-NEXT:      "tokLen": 1
478 // CHECK-NEXT:     }
479 // CHECK-NEXT:    },
480 // CHECK-NEXT:    "visibility": "hidden"
481 // CHECK-NEXT:   }
482 // CHECK-NEXT:  ]
483 // CHECK-NEXT: }
484 
485 
486 // CHECK-NOT: {{^}}Dumping
487 // CHECK:  "kind": "VarDecl",
488 // CHECK-NEXT:  "loc": {
489 // CHECK-NEXT:   "offset": 748,
490 // CHECK-NEXT:   "line": 22,
491 // CHECK-NEXT:   "col": 57,
492 // CHECK-NEXT:   "tokLen": 13
493 // CHECK-NEXT:  },
494 // CHECK-NEXT:  "range": {
495 // CHECK-NEXT:   "begin": {
496 // CHECK-NEXT:    "offset": 692,
497 // CHECK-NEXT:    "col": 1,
498 // CHECK-NEXT:    "tokLen": 8
499 // CHECK-NEXT:   },
500 // CHECK-NEXT:   "end": {
501 // CHECK-NEXT:    "offset": 748,
502 // CHECK-NEXT:    "col": 57,
503 // CHECK-NEXT:    "tokLen": 13
504 // CHECK-NEXT:   }
505 // CHECK-NEXT:  },
506 // CHECK-NEXT:  "name": "tls_model_var",
507 // CHECK-NEXT:  "mangledName": "tls_model_var",
508 // CHECK-NEXT:  "type": {
509 // CHECK-NEXT:   "qualType": "int"
510 // CHECK-NEXT:  },
511 // CHECK-NEXT:  "tls": "static",
512 // CHECK-NEXT:  "inner": [
513 // CHECK-NEXT:   {
514 // CHECK-NEXT:    "id": "0x{{.*}}",
515 // CHECK-NEXT:    "kind": "TLSModelAttr",
516 // CHECK-NEXT:    "range": {
517 // CHECK-NEXT:     "begin": {
518 // CHECK-NEXT:      "offset": 717,
519 // CHECK-NEXT:      "col": 26,
520 // CHECK-NEXT:      "tokLen": 9
521 // CHECK-NEXT:     },
522 // CHECK-NEXT:     "end": {
523 // CHECK-NEXT:      "offset": 740,
524 // CHECK-NEXT:      "col": 49,
525 // CHECK-NEXT:      "tokLen": 1
526 // CHECK-NEXT:     }
527 // CHECK-NEXT:    },
528 // CHECK-NEXT:    "tls_model": "local-exec"
529 // CHECK-NEXT:   }
530 // CHECK-NEXT:  ]
531 // CHECK-NEXT: }
532