xref: /llvm-project/clang/test/AST/ast-dump-if-json.cpp (revision ba15d186e5cef2620d562c6c9d9a6d570382cd0a)
1 // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++23 -ast-dump=json %s | FileCheck %s
2 
func(int val)3 void func(int val) {
4   if (val)
5     ;
6 
7   if (val)
8     ;
9   else
10     ;
11 
12   if (val)
13     ;
14   else if (val)
15     ;
16   else
17     ;
18 
19   if constexpr(10 == 10)
20     ;
21 
22   if (int i = 12)
23     ;
24 
25   if (int i = 12; i)
26     ;
27 
28   if consteval {}
29 
30   if consteval {} else {}
31 
32   if not consteval {}
33 
34   if not consteval {} else {}
35 }
36 
37 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
38 // using --filters=IfStmt
39 
40 
41 // CHECK-NOT: {{^}}Dumping
42 // CHECK:  "kind": "IfStmt",
43 // CHECK-NEXT:  "range": {
44 // CHECK-NEXT:   "begin": {
45 // CHECK-NEXT:    "offset": {{[0-9]+}},
46 // CHECK-NEXT:    "line": 4,
47 // CHECK-NEXT:    "col": 3,
48 // CHECK-NEXT:    "tokLen": 2
49 // CHECK-NEXT:   },
50 // CHECK-NEXT:   "end": {
51 // CHECK-NEXT:    "offset": {{[0-9]+}},
52 // CHECK-NEXT:    "line": 5,
53 // CHECK-NEXT:    "col": 5,
54 // CHECK-NEXT:    "tokLen": 1
55 // CHECK-NEXT:   }
56 // CHECK-NEXT:  },
57 // CHECK-NEXT:  "inner": [
58 // CHECK-NEXT:   {
59 // CHECK-NEXT:    "id": "0x{{.*}}",
60 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
61 // CHECK-NEXT:    "range": {
62 // CHECK-NEXT:     "begin": {
63 // CHECK-NEXT:      "offset": {{[0-9]+}},
64 // CHECK-NEXT:      "line": 4,
65 // CHECK-NEXT:      "col": 7,
66 // CHECK-NEXT:      "tokLen": 3
67 // CHECK-NEXT:     },
68 // CHECK-NEXT:     "end": {
69 // CHECK-NEXT:      "offset": {{[0-9]+}},
70 // CHECK-NEXT:      "col": 7,
71 // CHECK-NEXT:      "tokLen": 3
72 // CHECK-NEXT:     }
73 // CHECK-NEXT:    },
74 // CHECK-NEXT:    "type": {
75 // CHECK-NEXT:     "qualType": "bool"
76 // CHECK-NEXT:    },
77 // CHECK-NEXT:    "valueCategory": "prvalue",
78 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
79 // CHECK-NEXT:    "inner": [
80 // CHECK-NEXT:     {
81 // CHECK-NEXT:      "id": "0x{{.*}}",
82 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
83 // CHECK-NEXT:      "range": {
84 // CHECK-NEXT:       "begin": {
85 // CHECK-NEXT:        "offset": {{[0-9]+}},
86 // CHECK-NEXT:        "col": 7,
87 // CHECK-NEXT:        "tokLen": 3
88 // CHECK-NEXT:       },
89 // CHECK-NEXT:       "end": {
90 // CHECK-NEXT:        "offset": {{[0-9]+}},
91 // CHECK-NEXT:        "col": 7,
92 // CHECK-NEXT:        "tokLen": 3
93 // CHECK-NEXT:       }
94 // CHECK-NEXT:      },
95 // CHECK-NEXT:      "type": {
96 // CHECK-NEXT:       "qualType": "int"
97 // CHECK-NEXT:      },
98 // CHECK-NEXT:      "valueCategory": "prvalue",
99 // CHECK-NEXT:      "castKind": "LValueToRValue",
100 // CHECK-NEXT:      "inner": [
101 // CHECK-NEXT:       {
102 // CHECK-NEXT:        "id": "0x{{.*}}",
103 // CHECK-NEXT:        "kind": "DeclRefExpr",
104 // CHECK-NEXT:        "range": {
105 // CHECK-NEXT:         "begin": {
106 // CHECK-NEXT:          "offset": {{[0-9]+}},
107 // CHECK-NEXT:          "col": 7,
108 // CHECK-NEXT:          "tokLen": 3
109 // CHECK-NEXT:         },
110 // CHECK-NEXT:         "end": {
111 // CHECK-NEXT:          "offset": {{[0-9]+}},
112 // CHECK-NEXT:          "col": 7,
113 // CHECK-NEXT:          "tokLen": 3
114 // CHECK-NEXT:         }
115 // CHECK-NEXT:        },
116 // CHECK-NEXT:        "type": {
117 // CHECK-NEXT:         "qualType": "int"
118 // CHECK-NEXT:        },
119 // CHECK-NEXT:        "valueCategory": "lvalue",
120 // CHECK-NEXT:        "referencedDecl": {
121 // CHECK-NEXT:         "id": "0x{{.*}}",
122 // CHECK-NEXT:         "kind": "ParmVarDecl",
123 // CHECK-NEXT:         "name": "val",
124 // CHECK-NEXT:         "type": {
125 // CHECK-NEXT:          "qualType": "int"
126 // CHECK-NEXT:         }
127 // CHECK-NEXT:        }
128 // CHECK-NEXT:       }
129 // CHECK-NEXT:      ]
130 // CHECK-NEXT:     }
131 // CHECK-NEXT:    ]
132 // CHECK-NEXT:   },
133 // CHECK-NEXT:   {
134 // CHECK-NEXT:    "id": "0x{{.*}}",
135 // CHECK-NEXT:    "kind": "NullStmt",
136 // CHECK-NEXT:    "range": {
137 // CHECK-NEXT:     "begin": {
138 // CHECK-NEXT:      "offset": {{[0-9]+}},
139 // CHECK-NEXT:      "line": 5,
140 // CHECK-NEXT:      "col": 5,
141 // CHECK-NEXT:      "tokLen": 1
142 // CHECK-NEXT:     },
143 // CHECK-NEXT:     "end": {
144 // CHECK-NEXT:      "offset": {{[0-9]+}},
145 // CHECK-NEXT:      "col": 5,
146 // CHECK-NEXT:      "tokLen": 1
147 // CHECK-NEXT:     }
148 // CHECK-NEXT:    }
149 // CHECK-NEXT:   }
150 // CHECK-NEXT:  ]
151 // CHECK-NEXT: }
152 
153 
154 // CHECK-NOT: {{^}}Dumping
155 // CHECK:  "kind": "IfStmt",
156 // CHECK-NEXT:  "range": {
157 // CHECK-NEXT:   "begin": {
158 // CHECK-NEXT:    "offset": {{[0-9]+}},
159 // CHECK-NEXT:    "line": 7,
160 // CHECK-NEXT:    "col": 3,
161 // CHECK-NEXT:    "tokLen": 2
162 // CHECK-NEXT:   },
163 // CHECK-NEXT:   "end": {
164 // CHECK-NEXT:    "offset": {{[0-9]+}},
165 // CHECK-NEXT:    "line": 10,
166 // CHECK-NEXT:    "col": 5,
167 // CHECK-NEXT:    "tokLen": 1
168 // CHECK-NEXT:   }
169 // CHECK-NEXT:  },
170 // CHECK-NEXT:  "hasElse": true,
171 // CHECK-NEXT:  "inner": [
172 // CHECK-NEXT:   {
173 // CHECK-NEXT:    "id": "0x{{.*}}",
174 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
175 // CHECK-NEXT:    "range": {
176 // CHECK-NEXT:     "begin": {
177 // CHECK-NEXT:      "offset": {{[0-9]+}},
178 // CHECK-NEXT:      "line": 7,
179 // CHECK-NEXT:      "col": 7,
180 // CHECK-NEXT:      "tokLen": 3
181 // CHECK-NEXT:     },
182 // CHECK-NEXT:     "end": {
183 // CHECK-NEXT:      "offset": {{[0-9]+}},
184 // CHECK-NEXT:      "col": 7,
185 // CHECK-NEXT:      "tokLen": 3
186 // CHECK-NEXT:     }
187 // CHECK-NEXT:    },
188 // CHECK-NEXT:    "type": {
189 // CHECK-NEXT:     "qualType": "bool"
190 // CHECK-NEXT:    },
191 // CHECK-NEXT:    "valueCategory": "prvalue",
192 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
193 // CHECK-NEXT:    "inner": [
194 // CHECK-NEXT:     {
195 // CHECK-NEXT:      "id": "0x{{.*}}",
196 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
197 // CHECK-NEXT:      "range": {
198 // CHECK-NEXT:       "begin": {
199 // CHECK-NEXT:        "offset": {{[0-9]+}},
200 // CHECK-NEXT:        "col": 7,
201 // CHECK-NEXT:        "tokLen": 3
202 // CHECK-NEXT:       },
203 // CHECK-NEXT:       "end": {
204 // CHECK-NEXT:        "offset": {{[0-9]+}},
205 // CHECK-NEXT:        "col": 7,
206 // CHECK-NEXT:        "tokLen": 3
207 // CHECK-NEXT:       }
208 // CHECK-NEXT:      },
209 // CHECK-NEXT:      "type": {
210 // CHECK-NEXT:       "qualType": "int"
211 // CHECK-NEXT:      },
212 // CHECK-NEXT:      "valueCategory": "prvalue",
213 // CHECK-NEXT:      "castKind": "LValueToRValue",
214 // CHECK-NEXT:      "inner": [
215 // CHECK-NEXT:       {
216 // CHECK-NEXT:        "id": "0x{{.*}}",
217 // CHECK-NEXT:        "kind": "DeclRefExpr",
218 // CHECK-NEXT:        "range": {
219 // CHECK-NEXT:         "begin": {
220 // CHECK-NEXT:          "offset": {{[0-9]+}},
221 // CHECK-NEXT:          "col": 7,
222 // CHECK-NEXT:          "tokLen": 3
223 // CHECK-NEXT:         },
224 // CHECK-NEXT:         "end": {
225 // CHECK-NEXT:          "offset": {{[0-9]+}},
226 // CHECK-NEXT:          "col": 7,
227 // CHECK-NEXT:          "tokLen": 3
228 // CHECK-NEXT:         }
229 // CHECK-NEXT:        },
230 // CHECK-NEXT:        "type": {
231 // CHECK-NEXT:         "qualType": "int"
232 // CHECK-NEXT:        },
233 // CHECK-NEXT:        "valueCategory": "lvalue",
234 // CHECK-NEXT:        "referencedDecl": {
235 // CHECK-NEXT:         "id": "0x{{.*}}",
236 // CHECK-NEXT:         "kind": "ParmVarDecl",
237 // CHECK-NEXT:         "name": "val",
238 // CHECK-NEXT:         "type": {
239 // CHECK-NEXT:          "qualType": "int"
240 // CHECK-NEXT:         }
241 // CHECK-NEXT:        }
242 // CHECK-NEXT:       }
243 // CHECK-NEXT:      ]
244 // CHECK-NEXT:     }
245 // CHECK-NEXT:    ]
246 // CHECK-NEXT:   },
247 // CHECK-NEXT:   {
248 // CHECK-NEXT:    "id": "0x{{.*}}",
249 // CHECK-NEXT:    "kind": "NullStmt",
250 // CHECK-NEXT:    "range": {
251 // CHECK-NEXT:     "begin": {
252 // CHECK-NEXT:      "offset": {{[0-9]+}},
253 // CHECK-NEXT:      "line": 8,
254 // CHECK-NEXT:      "col": 5,
255 // CHECK-NEXT:      "tokLen": 1
256 // CHECK-NEXT:     },
257 // CHECK-NEXT:     "end": {
258 // CHECK-NEXT:      "offset": {{[0-9]+}},
259 // CHECK-NEXT:      "col": 5,
260 // CHECK-NEXT:      "tokLen": 1
261 // CHECK-NEXT:     }
262 // CHECK-NEXT:    }
263 // CHECK-NEXT:   },
264 // CHECK-NEXT:   {
265 // CHECK-NEXT:    "id": "0x{{.*}}",
266 // CHECK-NEXT:    "kind": "NullStmt",
267 // CHECK-NEXT:    "range": {
268 // CHECK-NEXT:     "begin": {
269 // CHECK-NEXT:      "offset": {{[0-9]+}},
270 // CHECK-NEXT:      "line": 10,
271 // CHECK-NEXT:      "col": 5,
272 // CHECK-NEXT:      "tokLen": 1
273 // CHECK-NEXT:     },
274 // CHECK-NEXT:     "end": {
275 // CHECK-NEXT:      "offset": {{[0-9]+}},
276 // CHECK-NEXT:      "col": 5,
277 // CHECK-NEXT:      "tokLen": 1
278 // CHECK-NEXT:     }
279 // CHECK-NEXT:    }
280 // CHECK-NEXT:   }
281 // CHECK-NEXT:  ]
282 // CHECK-NEXT: }
283 
284 
285 // CHECK-NOT: {{^}}Dumping
286 // CHECK:  "kind": "IfStmt",
287 // CHECK-NEXT:  "range": {
288 // CHECK-NEXT:   "begin": {
289 // CHECK-NEXT:    "offset": {{[0-9]+}},
290 // CHECK-NEXT:    "line": 12,
291 // CHECK-NEXT:    "col": 3,
292 // CHECK-NEXT:    "tokLen": 2
293 // CHECK-NEXT:   },
294 // CHECK-NEXT:   "end": {
295 // CHECK-NEXT:    "offset": {{[0-9]+}},
296 // CHECK-NEXT:    "line": 17,
297 // CHECK-NEXT:    "col": 5,
298 // CHECK-NEXT:    "tokLen": 1
299 // CHECK-NEXT:   }
300 // CHECK-NEXT:  },
301 // CHECK-NEXT:  "hasElse": true,
302 // CHECK-NEXT:  "inner": [
303 // CHECK-NEXT:   {
304 // CHECK-NEXT:    "id": "0x{{.*}}",
305 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
306 // CHECK-NEXT:    "range": {
307 // CHECK-NEXT:     "begin": {
308 // CHECK-NEXT:      "offset": {{[0-9]+}},
309 // CHECK-NEXT:      "line": 12,
310 // CHECK-NEXT:      "col": 7,
311 // CHECK-NEXT:      "tokLen": 3
312 // CHECK-NEXT:     },
313 // CHECK-NEXT:     "end": {
314 // CHECK-NEXT:      "offset": {{[0-9]+}},
315 // CHECK-NEXT:      "col": 7,
316 // CHECK-NEXT:      "tokLen": 3
317 // CHECK-NEXT:     }
318 // CHECK-NEXT:    },
319 // CHECK-NEXT:    "type": {
320 // CHECK-NEXT:     "qualType": "bool"
321 // CHECK-NEXT:    },
322 // CHECK-NEXT:    "valueCategory": "prvalue",
323 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
324 // CHECK-NEXT:    "inner": [
325 // CHECK-NEXT:     {
326 // CHECK-NEXT:      "id": "0x{{.*}}",
327 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
328 // CHECK-NEXT:      "range": {
329 // CHECK-NEXT:       "begin": {
330 // CHECK-NEXT:        "offset": {{[0-9]+}},
331 // CHECK-NEXT:        "col": 7,
332 // CHECK-NEXT:        "tokLen": 3
333 // CHECK-NEXT:       },
334 // CHECK-NEXT:       "end": {
335 // CHECK-NEXT:        "offset": {{[0-9]+}},
336 // CHECK-NEXT:        "col": 7,
337 // CHECK-NEXT:        "tokLen": 3
338 // CHECK-NEXT:       }
339 // CHECK-NEXT:      },
340 // CHECK-NEXT:      "type": {
341 // CHECK-NEXT:       "qualType": "int"
342 // CHECK-NEXT:      },
343 // CHECK-NEXT:      "valueCategory": "prvalue",
344 // CHECK-NEXT:      "castKind": "LValueToRValue",
345 // CHECK-NEXT:      "inner": [
346 // CHECK-NEXT:       {
347 // CHECK-NEXT:        "id": "0x{{.*}}",
348 // CHECK-NEXT:        "kind": "DeclRefExpr",
349 // CHECK-NEXT:        "range": {
350 // CHECK-NEXT:         "begin": {
351 // CHECK-NEXT:          "offset": {{[0-9]+}},
352 // CHECK-NEXT:          "col": 7,
353 // CHECK-NEXT:          "tokLen": 3
354 // CHECK-NEXT:         },
355 // CHECK-NEXT:         "end": {
356 // CHECK-NEXT:          "offset": {{[0-9]+}},
357 // CHECK-NEXT:          "col": 7,
358 // CHECK-NEXT:          "tokLen": 3
359 // CHECK-NEXT:         }
360 // CHECK-NEXT:        },
361 // CHECK-NEXT:        "type": {
362 // CHECK-NEXT:         "qualType": "int"
363 // CHECK-NEXT:        },
364 // CHECK-NEXT:        "valueCategory": "lvalue",
365 // CHECK-NEXT:        "referencedDecl": {
366 // CHECK-NEXT:         "id": "0x{{.*}}",
367 // CHECK-NEXT:         "kind": "ParmVarDecl",
368 // CHECK-NEXT:         "name": "val",
369 // CHECK-NEXT:         "type": {
370 // CHECK-NEXT:          "qualType": "int"
371 // CHECK-NEXT:         }
372 // CHECK-NEXT:        }
373 // CHECK-NEXT:       }
374 // CHECK-NEXT:      ]
375 // CHECK-NEXT:     }
376 // CHECK-NEXT:    ]
377 // CHECK-NEXT:   },
378 // CHECK-NEXT:   {
379 // CHECK-NEXT:    "id": "0x{{.*}}",
380 // CHECK-NEXT:    "kind": "NullStmt",
381 // CHECK-NEXT:    "range": {
382 // CHECK-NEXT:     "begin": {
383 // CHECK-NEXT:      "offset": {{[0-9]+}},
384 // CHECK-NEXT:      "line": 13,
385 // CHECK-NEXT:      "col": 5,
386 // CHECK-NEXT:      "tokLen": 1
387 // CHECK-NEXT:     },
388 // CHECK-NEXT:     "end": {
389 // CHECK-NEXT:      "offset": {{[0-9]+}},
390 // CHECK-NEXT:      "col": 5,
391 // CHECK-NEXT:      "tokLen": 1
392 // CHECK-NEXT:     }
393 // CHECK-NEXT:    }
394 // CHECK-NEXT:   },
395 // CHECK-NEXT:   {
396 // CHECK-NEXT:    "id": "0x{{.*}}",
397 // CHECK-NEXT:    "kind": "IfStmt",
398 // CHECK-NEXT:    "range": {
399 // CHECK-NEXT:     "begin": {
400 // CHECK-NEXT:      "offset": {{[0-9]+}},
401 // CHECK-NEXT:      "line": 14,
402 // CHECK-NEXT:      "col": 8,
403 // CHECK-NEXT:      "tokLen": 2
404 // CHECK-NEXT:     },
405 // CHECK-NEXT:     "end": {
406 // CHECK-NEXT:      "offset": {{[0-9]+}},
407 // CHECK-NEXT:      "line": 17,
408 // CHECK-NEXT:      "col": 5,
409 // CHECK-NEXT:      "tokLen": 1
410 // CHECK-NEXT:     }
411 // CHECK-NEXT:    },
412 // CHECK-NEXT:    "hasElse": true,
413 // CHECK-NEXT:    "inner": [
414 // CHECK-NEXT:     {
415 // CHECK-NEXT:      "id": "0x{{.*}}",
416 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
417 // CHECK-NEXT:      "range": {
418 // CHECK-NEXT:       "begin": {
419 // CHECK-NEXT:        "offset": {{[0-9]+}},
420 // CHECK-NEXT:        "line": 14,
421 // CHECK-NEXT:        "col": 12,
422 // CHECK-NEXT:        "tokLen": 3
423 // CHECK-NEXT:       },
424 // CHECK-NEXT:       "end": {
425 // CHECK-NEXT:        "offset": {{[0-9]+}},
426 // CHECK-NEXT:        "col": 12,
427 // CHECK-NEXT:        "tokLen": 3
428 // CHECK-NEXT:       }
429 // CHECK-NEXT:      },
430 // CHECK-NEXT:      "type": {
431 // CHECK-NEXT:       "qualType": "bool"
432 // CHECK-NEXT:      },
433 // CHECK-NEXT:      "valueCategory": "prvalue",
434 // CHECK-NEXT:      "castKind": "IntegralToBoolean",
435 // CHECK-NEXT:      "inner": [
436 // CHECK-NEXT:       {
437 // CHECK-NEXT:        "id": "0x{{.*}}",
438 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
439 // CHECK-NEXT:        "range": {
440 // CHECK-NEXT:         "begin": {
441 // CHECK-NEXT:          "offset": {{[0-9]+}},
442 // CHECK-NEXT:          "col": 12,
443 // CHECK-NEXT:          "tokLen": 3
444 // CHECK-NEXT:         },
445 // CHECK-NEXT:         "end": {
446 // CHECK-NEXT:          "offset": {{[0-9]+}},
447 // CHECK-NEXT:          "col": 12,
448 // CHECK-NEXT:          "tokLen": 3
449 // CHECK-NEXT:         }
450 // CHECK-NEXT:        },
451 // CHECK-NEXT:        "type": {
452 // CHECK-NEXT:         "qualType": "int"
453 // CHECK-NEXT:        },
454 // CHECK-NEXT:        "valueCategory": "prvalue",
455 // CHECK-NEXT:        "castKind": "LValueToRValue",
456 // CHECK-NEXT:        "inner": [
457 // CHECK-NEXT:         {
458 // CHECK-NEXT:          "id": "0x{{.*}}",
459 // CHECK-NEXT:          "kind": "DeclRefExpr",
460 // CHECK-NEXT:          "range": {
461 // CHECK-NEXT:           "begin": {
462 // CHECK-NEXT:            "offset": {{[0-9]+}},
463 // CHECK-NEXT:            "col": 12,
464 // CHECK-NEXT:            "tokLen": 3
465 // CHECK-NEXT:           },
466 // CHECK-NEXT:           "end": {
467 // CHECK-NEXT:            "offset": {{[0-9]+}},
468 // CHECK-NEXT:            "col": 12,
469 // CHECK-NEXT:            "tokLen": 3
470 // CHECK-NEXT:           }
471 // CHECK-NEXT:          },
472 // CHECK-NEXT:          "type": {
473 // CHECK-NEXT:           "qualType": "int"
474 // CHECK-NEXT:          },
475 // CHECK-NEXT:          "valueCategory": "lvalue",
476 // CHECK-NEXT:          "referencedDecl": {
477 // CHECK-NEXT:           "id": "0x{{.*}}",
478 // CHECK-NEXT:           "kind": "ParmVarDecl",
479 // CHECK-NEXT:           "name": "val",
480 // CHECK-NEXT:           "type": {
481 // CHECK-NEXT:            "qualType": "int"
482 // CHECK-NEXT:           }
483 // CHECK-NEXT:          }
484 // CHECK-NEXT:         }
485 // CHECK-NEXT:        ]
486 // CHECK-NEXT:       }
487 // CHECK-NEXT:      ]
488 // CHECK-NEXT:     },
489 // CHECK-NEXT:     {
490 // CHECK-NEXT:      "id": "0x{{.*}}",
491 // CHECK-NEXT:      "kind": "NullStmt",
492 // CHECK-NEXT:      "range": {
493 // CHECK-NEXT:       "begin": {
494 // CHECK-NEXT:        "offset": {{[0-9]+}},
495 // CHECK-NEXT:        "line": 15,
496 // CHECK-NEXT:        "col": 5,
497 // CHECK-NEXT:        "tokLen": 1
498 // CHECK-NEXT:       },
499 // CHECK-NEXT:       "end": {
500 // CHECK-NEXT:        "offset": {{[0-9]+}},
501 // CHECK-NEXT:        "col": 5,
502 // CHECK-NEXT:        "tokLen": 1
503 // CHECK-NEXT:       }
504 // CHECK-NEXT:      }
505 // CHECK-NEXT:     },
506 // CHECK-NEXT:     {
507 // CHECK-NEXT:      "id": "0x{{.*}}",
508 // CHECK-NEXT:      "kind": "NullStmt",
509 // CHECK-NEXT:      "range": {
510 // CHECK-NEXT:       "begin": {
511 // CHECK-NEXT:        "offset": {{[0-9]+}},
512 // CHECK-NEXT:        "line": 17,
513 // CHECK-NEXT:        "col": 5,
514 // CHECK-NEXT:        "tokLen": 1
515 // CHECK-NEXT:       },
516 // CHECK-NEXT:       "end": {
517 // CHECK-NEXT:        "offset": {{[0-9]+}},
518 // CHECK-NEXT:        "col": 5,
519 // CHECK-NEXT:        "tokLen": 1
520 // CHECK-NEXT:       }
521 // CHECK-NEXT:      }
522 // CHECK-NEXT:     }
523 // CHECK-NEXT:    ]
524 // CHECK-NEXT:   }
525 // CHECK-NEXT:  ]
526 // CHECK-NEXT: }
527 
528 
529 // CHECK-NOT: {{^}}Dumping
530 // CHECK:  "kind": "IfStmt",
531 // CHECK-NEXT:  "range": {
532 // CHECK-NEXT:   "begin": {
533 // CHECK-NEXT:    "offset": {{[0-9]+}},
534 // CHECK-NEXT:    "line": 19,
535 // CHECK-NEXT:    "col": 3,
536 // CHECK-NEXT:    "tokLen": 2
537 // CHECK-NEXT:   },
538 // CHECK-NEXT:   "end": {
539 // CHECK-NEXT:    "offset": {{[0-9]+}},
540 // CHECK-NEXT:    "line": 20,
541 // CHECK-NEXT:    "col": 5,
542 // CHECK-NEXT:    "tokLen": 1
543 // CHECK-NEXT:   }
544 // CHECK-NEXT:  },
545 // CHECK-NEXT:  "isConstexpr": true,
546 // CHECK-NEXT:  "inner": [
547 // CHECK-NEXT:   {
548 // CHECK-NEXT:    "id": "0x{{.*}}",
549 // CHECK-NEXT:    "kind": "ConstantExpr",
550 // CHECK-NEXT:    "range": {
551 // CHECK-NEXT:     "begin": {
552 // CHECK-NEXT:      "offset": {{[0-9]+}},
553 // CHECK-NEXT:      "line": 19,
554 // CHECK-NEXT:      "col": 16,
555 // CHECK-NEXT:      "tokLen": 2
556 // CHECK-NEXT:     },
557 // CHECK-NEXT:     "end": {
558 // CHECK-NEXT:      "offset": {{[0-9]+}},
559 // CHECK-NEXT:      "col": 22,
560 // CHECK-NEXT:      "tokLen": 2
561 // CHECK-NEXT:     }
562 // CHECK-NEXT:    },
563 // CHECK-NEXT:    "type": {
564 // CHECK-NEXT:     "qualType": "bool"
565 // CHECK-NEXT:    },
566 // CHECK-NEXT:    "valueCategory": "prvalue",
567 // CHECK-NEXT:    "value": "true",
568 // CHECK-NEXT:    "inner": [
569 // CHECK-NEXT:     {
570 // CHECK-NEXT:      "id": "0x{{.*}}",
571 // CHECK-NEXT:      "kind": "BinaryOperator",
572 // CHECK-NEXT:      "range": {
573 // CHECK-NEXT:       "begin": {
574 // CHECK-NEXT:        "offset": {{[0-9]+}},
575 // CHECK-NEXT:        "col": 16,
576 // CHECK-NEXT:        "tokLen": 2
577 // CHECK-NEXT:       },
578 // CHECK-NEXT:       "end": {
579 // CHECK-NEXT:        "offset": {{[0-9]+}},
580 // CHECK-NEXT:        "col": 22,
581 // CHECK-NEXT:        "tokLen": 2
582 // CHECK-NEXT:       }
583 // CHECK-NEXT:      },
584 // CHECK-NEXT:      "type": {
585 // CHECK-NEXT:       "qualType": "bool"
586 // CHECK-NEXT:      },
587 // CHECK-NEXT:      "valueCategory": "prvalue",
588 // CHECK-NEXT:      "opcode": "==",
589 // CHECK-NEXT:      "inner": [
590 // CHECK-NEXT:       {
591 // CHECK-NEXT:        "id": "0x{{.*}}",
592 // CHECK-NEXT:        "kind": "IntegerLiteral",
593 // CHECK-NEXT:        "range": {
594 // CHECK-NEXT:         "begin": {
595 // CHECK-NEXT:          "offset": {{[0-9]+}},
596 // CHECK-NEXT:          "col": 16,
597 // CHECK-NEXT:          "tokLen": 2
598 // CHECK-NEXT:         },
599 // CHECK-NEXT:         "end": {
600 // CHECK-NEXT:          "offset": {{[0-9]+}},
601 // CHECK-NEXT:          "col": 16,
602 // CHECK-NEXT:          "tokLen": 2
603 // CHECK-NEXT:         }
604 // CHECK-NEXT:        },
605 // CHECK-NEXT:        "type": {
606 // CHECK-NEXT:         "qualType": "int"
607 // CHECK-NEXT:        },
608 // CHECK-NEXT:        "valueCategory": "prvalue",
609 // CHECK-NEXT:        "value": "10"
610 // CHECK-NEXT:       },
611 // CHECK-NEXT:       {
612 // CHECK-NEXT:        "id": "0x{{.*}}",
613 // CHECK-NEXT:        "kind": "IntegerLiteral",
614 // CHECK-NEXT:        "range": {
615 // CHECK-NEXT:         "begin": {
616 // CHECK-NEXT:          "offset": {{[0-9]+}},
617 // CHECK-NEXT:          "col": 22,
618 // CHECK-NEXT:          "tokLen": 2
619 // CHECK-NEXT:         },
620 // CHECK-NEXT:         "end": {
621 // CHECK-NEXT:          "offset": {{[0-9]+}},
622 // CHECK-NEXT:          "col": 22,
623 // CHECK-NEXT:          "tokLen": 2
624 // CHECK-NEXT:         }
625 // CHECK-NEXT:        },
626 // CHECK-NEXT:        "type": {
627 // CHECK-NEXT:         "qualType": "int"
628 // CHECK-NEXT:        },
629 // CHECK-NEXT:        "valueCategory": "prvalue",
630 // CHECK-NEXT:        "value": "10"
631 // CHECK-NEXT:       }
632 // CHECK-NEXT:      ]
633 // CHECK-NEXT:     }
634 // CHECK-NEXT:    ]
635 // CHECK-NEXT:   },
636 // CHECK-NEXT:   {
637 // CHECK-NEXT:    "id": "0x{{.*}}",
638 // CHECK-NEXT:    "kind": "NullStmt",
639 // CHECK-NEXT:    "range": {
640 // CHECK-NEXT:     "begin": {
641 // CHECK-NEXT:      "offset": {{[0-9]+}},
642 // CHECK-NEXT:      "line": 20,
643 // CHECK-NEXT:      "col": 5,
644 // CHECK-NEXT:      "tokLen": 1
645 // CHECK-NEXT:     },
646 // CHECK-NEXT:     "end": {
647 // CHECK-NEXT:      "offset": {{[0-9]+}},
648 // CHECK-NEXT:      "col": 5,
649 // CHECK-NEXT:      "tokLen": 1
650 // CHECK-NEXT:     }
651 // CHECK-NEXT:    }
652 // CHECK-NEXT:   }
653 // CHECK-NEXT:  ]
654 // CHECK-NEXT: }
655 
656 
657 // CHECK-NOT: {{^}}Dumping
658 // CHECK:  "kind": "IfStmt",
659 // CHECK-NEXT:  "range": {
660 // CHECK-NEXT:   "begin": {
661 // CHECK-NEXT:    "offset": {{[0-9]+}},
662 // CHECK-NEXT:    "line": 22,
663 // CHECK-NEXT:    "col": 3,
664 // CHECK-NEXT:    "tokLen": 2
665 // CHECK-NEXT:   },
666 // CHECK-NEXT:   "end": {
667 // CHECK-NEXT:    "offset": {{[0-9]+}},
668 // CHECK-NEXT:    "line": 23,
669 // CHECK-NEXT:    "col": 5,
670 // CHECK-NEXT:    "tokLen": 1
671 // CHECK-NEXT:   }
672 // CHECK-NEXT:  },
673 // CHECK-NEXT:  "hasVar": true,
674 // CHECK-NEXT:  "inner": [
675 // CHECK-NEXT:   {
676 // CHECK-NEXT:    "id": "0x{{.*}}",
677 // CHECK-NEXT:    "kind": "DeclStmt",
678 // CHECK-NEXT:    "range": {
679 // CHECK-NEXT:     "begin": {
680 // CHECK-NEXT:      "offset": {{[0-9]+}},
681 // CHECK-NEXT:      "line": 22,
682 // CHECK-NEXT:      "col": 7,
683 // CHECK-NEXT:      "tokLen": 3
684 // CHECK-NEXT:     },
685 // CHECK-NEXT:     "end": {
686 // CHECK-NEXT:      "offset": {{[0-9]+}},
687 // CHECK-NEXT:      "col": 15,
688 // CHECK-NEXT:      "tokLen": 2
689 // CHECK-NEXT:     }
690 // CHECK-NEXT:    },
691 // CHECK-NEXT:    "inner": [
692 // CHECK-NEXT:     {
693 // CHECK-NEXT:      "id": "0x{{.*}}",
694 // CHECK-NEXT:      "kind": "VarDecl",
695 // CHECK-NEXT:      "loc": {
696 // CHECK-NEXT:       "offset": {{[0-9]+}},
697 // CHECK-NEXT:       "col": 11,
698 // CHECK-NEXT:       "tokLen": 1
699 // CHECK-NEXT:      },
700 // CHECK-NEXT:      "range": {
701 // CHECK-NEXT:       "begin": {
702 // CHECK-NEXT:        "offset": {{[0-9]+}},
703 // CHECK-NEXT:        "col": 7,
704 // CHECK-NEXT:        "tokLen": 3
705 // CHECK-NEXT:       },
706 // CHECK-NEXT:       "end": {
707 // CHECK-NEXT:        "offset": {{[0-9]+}},
708 // CHECK-NEXT:        "col": 15,
709 // CHECK-NEXT:        "tokLen": 2
710 // CHECK-NEXT:       }
711 // CHECK-NEXT:      },
712 // CHECK-NEXT:      "isUsed": true,
713 // CHECK-NEXT:      "name": "i",
714 // CHECK-NEXT:      "type": {
715 // CHECK-NEXT:       "qualType": "int"
716 // CHECK-NEXT:      },
717 // CHECK-NEXT:      "init": "c",
718 // CHECK-NEXT:      "inner": [
719 // CHECK-NEXT:       {
720 // CHECK-NEXT:        "id": "0x{{.*}}",
721 // CHECK-NEXT:        "kind": "IntegerLiteral",
722 // CHECK-NEXT:        "range": {
723 // CHECK-NEXT:         "begin": {
724 // CHECK-NEXT:          "offset": {{[0-9]+}},
725 // CHECK-NEXT:          "col": 15,
726 // CHECK-NEXT:          "tokLen": 2
727 // CHECK-NEXT:         },
728 // CHECK-NEXT:         "end": {
729 // CHECK-NEXT:          "offset": {{[0-9]+}},
730 // CHECK-NEXT:          "col": 15,
731 // CHECK-NEXT:          "tokLen": 2
732 // CHECK-NEXT:         }
733 // CHECK-NEXT:        },
734 // CHECK-NEXT:        "type": {
735 // CHECK-NEXT:         "qualType": "int"
736 // CHECK-NEXT:        },
737 // CHECK-NEXT:        "valueCategory": "prvalue",
738 // CHECK-NEXT:        "value": "12"
739 // CHECK-NEXT:       }
740 // CHECK-NEXT:      ]
741 // CHECK-NEXT:     }
742 // CHECK-NEXT:    ]
743 // CHECK-NEXT:   },
744 // CHECK-NEXT:   {
745 // CHECK-NEXT:    "id": "0x{{.*}}",
746 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
747 // CHECK-NEXT:    "range": {
748 // CHECK-NEXT:     "begin": {
749 // CHECK-NEXT:      "offset": {{[0-9]+}},
750 // CHECK-NEXT:      "col": 11,
751 // CHECK-NEXT:      "tokLen": 1
752 // CHECK-NEXT:     },
753 // CHECK-NEXT:     "end": {
754 // CHECK-NEXT:      "offset": {{[0-9]+}},
755 // CHECK-NEXT:      "col": 11,
756 // CHECK-NEXT:      "tokLen": 1
757 // CHECK-NEXT:     }
758 // CHECK-NEXT:    },
759 // CHECK-NEXT:    "type": {
760 // CHECK-NEXT:     "qualType": "bool"
761 // CHECK-NEXT:    },
762 // CHECK-NEXT:    "valueCategory": "prvalue",
763 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
764 // CHECK-NEXT:    "inner": [
765 // CHECK-NEXT:     {
766 // CHECK-NEXT:      "id": "0x{{.*}}",
767 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
768 // CHECK-NEXT:      "range": {
769 // CHECK-NEXT:       "begin": {
770 // CHECK-NEXT:        "offset": {{[0-9]+}},
771 // CHECK-NEXT:        "col": 11,
772 // CHECK-NEXT:        "tokLen": 1
773 // CHECK-NEXT:       },
774 // CHECK-NEXT:       "end": {
775 // CHECK-NEXT:        "offset": {{[0-9]+}},
776 // CHECK-NEXT:        "col": 11,
777 // CHECK-NEXT:        "tokLen": 1
778 // CHECK-NEXT:       }
779 // CHECK-NEXT:      },
780 // CHECK-NEXT:      "type": {
781 // CHECK-NEXT:       "qualType": "int"
782 // CHECK-NEXT:      },
783 // CHECK-NEXT:      "valueCategory": "prvalue",
784 // CHECK-NEXT:      "castKind": "LValueToRValue",
785 // CHECK-NEXT:      "inner": [
786 // CHECK-NEXT:       {
787 // CHECK-NEXT:        "id": "0x{{.*}}",
788 // CHECK-NEXT:        "kind": "DeclRefExpr",
789 // CHECK-NEXT:        "range": {
790 // CHECK-NEXT:         "begin": {
791 // CHECK-NEXT:          "offset": {{[0-9]+}},
792 // CHECK-NEXT:          "col": 11,
793 // CHECK-NEXT:          "tokLen": 1
794 // CHECK-NEXT:         },
795 // CHECK-NEXT:         "end": {
796 // CHECK-NEXT:          "offset": {{[0-9]+}},
797 // CHECK-NEXT:          "col": 11,
798 // CHECK-NEXT:          "tokLen": 1
799 // CHECK-NEXT:         }
800 // CHECK-NEXT:        },
801 // CHECK-NEXT:        "type": {
802 // CHECK-NEXT:         "qualType": "int"
803 // CHECK-NEXT:        },
804 // CHECK-NEXT:        "valueCategory": "lvalue",
805 // CHECK-NEXT:        "referencedDecl": {
806 // CHECK-NEXT:         "id": "0x{{.*}}",
807 // CHECK-NEXT:         "kind": "VarDecl",
808 // CHECK-NEXT:         "name": "i",
809 // CHECK-NEXT:         "type": {
810 // CHECK-NEXT:          "qualType": "int"
811 // CHECK-NEXT:         }
812 // CHECK-NEXT:        }
813 // CHECK-NEXT:       }
814 // CHECK-NEXT:      ]
815 // CHECK-NEXT:     }
816 // CHECK-NEXT:    ]
817 // CHECK-NEXT:   },
818 // CHECK-NEXT:   {
819 // CHECK-NEXT:    "id": "0x{{.*}}",
820 // CHECK-NEXT:    "kind": "NullStmt",
821 // CHECK-NEXT:    "range": {
822 // CHECK-NEXT:     "begin": {
823 // CHECK-NEXT:      "offset": {{[0-9]+}},
824 // CHECK-NEXT:      "line": 23,
825 // CHECK-NEXT:      "col": 5,
826 // CHECK-NEXT:      "tokLen": 1
827 // CHECK-NEXT:     },
828 // CHECK-NEXT:     "end": {
829 // CHECK-NEXT:      "offset": {{[0-9]+}},
830 // CHECK-NEXT:      "col": 5,
831 // CHECK-NEXT:      "tokLen": 1
832 // CHECK-NEXT:     }
833 // CHECK-NEXT:    }
834 // CHECK-NEXT:   }
835 // CHECK-NEXT:  ]
836 // CHECK-NEXT: }
837 
838 
839 // CHECK-NOT: {{^}}Dumping
840 // CHECK:  "kind": "IfStmt",
841 // CHECK-NEXT:  "range": {
842 // CHECK-NEXT:   "begin": {
843 // CHECK-NEXT:    "offset": {{[0-9]+}},
844 // CHECK-NEXT:    "line": 25,
845 // CHECK-NEXT:    "col": 3,
846 // CHECK-NEXT:    "tokLen": 2
847 // CHECK-NEXT:   },
848 // CHECK-NEXT:   "end": {
849 // CHECK-NEXT:    "offset": {{[0-9]+}},
850 // CHECK-NEXT:    "line": 26,
851 // CHECK-NEXT:    "col": 5,
852 // CHECK-NEXT:    "tokLen": 1
853 // CHECK-NEXT:   }
854 // CHECK-NEXT:  },
855 // CHECK-NEXT:  "hasInit": true,
856 // CHECK-NEXT:  "inner": [
857 // CHECK-NEXT:   {
858 // CHECK-NEXT:    "id": "0x{{.*}}",
859 // CHECK-NEXT:    "kind": "DeclStmt",
860 // CHECK-NEXT:    "range": {
861 // CHECK-NEXT:     "begin": {
862 // CHECK-NEXT:      "offset": {{[0-9]+}},
863 // CHECK-NEXT:      "line": 25,
864 // CHECK-NEXT:      "col": 7,
865 // CHECK-NEXT:      "tokLen": 3
866 // CHECK-NEXT:     },
867 // CHECK-NEXT:     "end": {
868 // CHECK-NEXT:      "offset": {{[0-9]+}},
869 // CHECK-NEXT:      "col": 17,
870 // CHECK-NEXT:      "tokLen": 1
871 // CHECK-NEXT:     }
872 // CHECK-NEXT:    },
873 // CHECK-NEXT:    "inner": [
874 // CHECK-NEXT:     {
875 // CHECK-NEXT:      "id": "0x{{.*}}",
876 // CHECK-NEXT:      "kind": "VarDecl",
877 // CHECK-NEXT:      "loc": {
878 // CHECK-NEXT:       "offset": {{[0-9]+}},
879 // CHECK-NEXT:       "col": 11,
880 // CHECK-NEXT:       "tokLen": 1
881 // CHECK-NEXT:      },
882 // CHECK-NEXT:      "range": {
883 // CHECK-NEXT:       "begin": {
884 // CHECK-NEXT:        "offset": {{[0-9]+}},
885 // CHECK-NEXT:        "col": 7,
886 // CHECK-NEXT:        "tokLen": 3
887 // CHECK-NEXT:       },
888 // CHECK-NEXT:       "end": {
889 // CHECK-NEXT:        "offset": {{[0-9]+}},
890 // CHECK-NEXT:        "col": 15,
891 // CHECK-NEXT:        "tokLen": 2
892 // CHECK-NEXT:       }
893 // CHECK-NEXT:      },
894 // CHECK-NEXT:      "isUsed": true,
895 // CHECK-NEXT:      "name": "i",
896 // CHECK-NEXT:      "type": {
897 // CHECK-NEXT:       "qualType": "int"
898 // CHECK-NEXT:      },
899 // CHECK-NEXT:      "init": "c",
900 // CHECK-NEXT:      "inner": [
901 // CHECK-NEXT:       {
902 // CHECK-NEXT:        "id": "0x{{.*}}",
903 // CHECK-NEXT:        "kind": "IntegerLiteral",
904 // CHECK-NEXT:        "range": {
905 // CHECK-NEXT:         "begin": {
906 // CHECK-NEXT:          "offset": {{[0-9]+}},
907 // CHECK-NEXT:          "col": 15,
908 // CHECK-NEXT:          "tokLen": 2
909 // CHECK-NEXT:         },
910 // CHECK-NEXT:         "end": {
911 // CHECK-NEXT:          "offset": {{[0-9]+}},
912 // CHECK-NEXT:          "col": 15,
913 // CHECK-NEXT:          "tokLen": 2
914 // CHECK-NEXT:         }
915 // CHECK-NEXT:        },
916 // CHECK-NEXT:        "type": {
917 // CHECK-NEXT:         "qualType": "int"
918 // CHECK-NEXT:        },
919 // CHECK-NEXT:        "valueCategory": "prvalue",
920 // CHECK-NEXT:        "value": "12"
921 // CHECK-NEXT:       }
922 // CHECK-NEXT:      ]
923 // CHECK-NEXT:     }
924 // CHECK-NEXT:    ]
925 // CHECK-NEXT:   },
926 // CHECK-NEXT:   {
927 // CHECK-NEXT:    "id": "0x{{.*}}",
928 // CHECK-NEXT:    "kind": "ImplicitCastExpr",
929 // CHECK-NEXT:    "range": {
930 // CHECK-NEXT:     "begin": {
931 // CHECK-NEXT:      "offset": {{[0-9]+}},
932 // CHECK-NEXT:      "col": 19,
933 // CHECK-NEXT:      "tokLen": 1
934 // CHECK-NEXT:     },
935 // CHECK-NEXT:     "end": {
936 // CHECK-NEXT:      "offset": {{[0-9]+}},
937 // CHECK-NEXT:      "col": 19,
938 // CHECK-NEXT:      "tokLen": 1
939 // CHECK-NEXT:     }
940 // CHECK-NEXT:    },
941 // CHECK-NEXT:    "type": {
942 // CHECK-NEXT:     "qualType": "bool"
943 // CHECK-NEXT:    },
944 // CHECK-NEXT:    "valueCategory": "prvalue",
945 // CHECK-NEXT:    "castKind": "IntegralToBoolean",
946 // CHECK-NEXT:    "inner": [
947 // CHECK-NEXT:     {
948 // CHECK-NEXT:      "id": "0x{{.*}}",
949 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
950 // CHECK-NEXT:      "range": {
951 // CHECK-NEXT:       "begin": {
952 // CHECK-NEXT:        "offset": {{[0-9]+}},
953 // CHECK-NEXT:        "col": 19,
954 // CHECK-NEXT:        "tokLen": 1
955 // CHECK-NEXT:       },
956 // CHECK-NEXT:       "end": {
957 // CHECK-NEXT:        "offset": {{[0-9]+}},
958 // CHECK-NEXT:        "col": 19,
959 // CHECK-NEXT:        "tokLen": 1
960 // CHECK-NEXT:       }
961 // CHECK-NEXT:      },
962 // CHECK-NEXT:      "type": {
963 // CHECK-NEXT:       "qualType": "int"
964 // CHECK-NEXT:      },
965 // CHECK-NEXT:      "valueCategory": "prvalue",
966 // CHECK-NEXT:      "castKind": "LValueToRValue",
967 // CHECK-NEXT:      "inner": [
968 // CHECK-NEXT:       {
969 // CHECK-NEXT:        "id": "0x{{.*}}",
970 // CHECK-NEXT:        "kind": "DeclRefExpr",
971 // CHECK-NEXT:        "range": {
972 // CHECK-NEXT:         "begin": {
973 // CHECK-NEXT:          "offset": {{[0-9]+}},
974 // CHECK-NEXT:          "col": 19,
975 // CHECK-NEXT:          "tokLen": 1
976 // CHECK-NEXT:         },
977 // CHECK-NEXT:         "end": {
978 // CHECK-NEXT:          "offset": {{[0-9]+}},
979 // CHECK-NEXT:          "col": 19,
980 // CHECK-NEXT:          "tokLen": 1
981 // CHECK-NEXT:         }
982 // CHECK-NEXT:        },
983 // CHECK-NEXT:        "type": {
984 // CHECK-NEXT:         "qualType": "int"
985 // CHECK-NEXT:        },
986 // CHECK-NEXT:        "valueCategory": "lvalue",
987 // CHECK-NEXT:        "referencedDecl": {
988 // CHECK-NEXT:         "id": "0x{{.*}}",
989 // CHECK-NEXT:         "kind": "VarDecl",
990 // CHECK-NEXT:         "name": "i",
991 // CHECK-NEXT:         "type": {
992 // CHECK-NEXT:          "qualType": "int"
993 // CHECK-NEXT:         }
994 // CHECK-NEXT:        }
995 // CHECK-NEXT:       }
996 // CHECK-NEXT:      ]
997 // CHECK-NEXT:     }
998 // CHECK-NEXT:    ]
999 // CHECK-NEXT:   },
1000 // CHECK-NEXT:   {
1001 // CHECK-NEXT:    "id": "0x{{.*}}",
1002 // CHECK-NEXT:    "kind": "NullStmt",
1003 // CHECK-NEXT:    "range": {
1004 // CHECK-NEXT:     "begin": {
1005 // CHECK-NEXT:      "offset": {{[0-9]+}},
1006 // CHECK-NEXT:      "line": 26,
1007 // CHECK-NEXT:      "col": 5,
1008 // CHECK-NEXT:      "tokLen": 1
1009 // CHECK-NEXT:     },
1010 // CHECK-NEXT:     "end": {
1011 // CHECK-NEXT:      "offset": {{[0-9]+}},
1012 // CHECK-NEXT:      "col": 5,
1013 // CHECK-NEXT:      "tokLen": 1
1014 // CHECK-NEXT:     }
1015 // CHECK-NEXT:    }
1016 // CHECK-NEXT:   }
1017 // CHECK-NEXT:  ]
1018 // CHECK-NEXT: }
1019 
1020 
1021 // CHECK-NOT: {{^}}Dumping
1022 // CHECK:  "kind": "IfStmt",
1023 // CHECK-NEXT:  "range": {
1024 // CHECK-NEXT:   "begin": {
1025 // CHECK-NEXT:    "offset": {{[0-9]+}},
1026 // CHECK-NEXT:    "line": 28,
1027 // CHECK-NEXT:    "col": 3,
1028 // CHECK-NEXT:    "tokLen": 2
1029 // CHECK-NEXT:   },
1030 // CHECK-NEXT:   "end": {
1031 // CHECK-NEXT:    "offset": {{[0-9]+}},
1032 // CHECK-NEXT:    "col": 17,
1033 // CHECK-NEXT:    "tokLen": 1
1034 // CHECK-NEXT:   }
1035 // CHECK-NEXT:  },
1036 // CHECK-NEXT:  "isConsteval": true,
1037 // CHECK-NEXT:  "inner": [
1038 // CHECK-NEXT:   {
1039 // CHECK-NEXT:    "id": "0x{{.*}}",
1040 // CHECK-NEXT:    "kind": "CompoundStmt",
1041 // CHECK-NEXT:    "range": {
1042 // CHECK-NEXT:     "begin": {
1043 // CHECK-NEXT:      "offset": {{[0-9]+}},
1044 // CHECK-NEXT:      "col": 16,
1045 // CHECK-NEXT:      "tokLen": 1
1046 // CHECK-NEXT:     },
1047 // CHECK-NEXT:     "end": {
1048 // CHECK-NEXT:      "offset": {{[0-9]+}},
1049 // CHECK-NEXT:      "col": 17,
1050 // CHECK-NEXT:      "tokLen": 1
1051 // CHECK-NEXT:     }
1052 // CHECK-NEXT:    }
1053 // CHECK-NEXT:   }
1054 // CHECK-NEXT:  ]
1055 // CHECK-NEXT: }
1056 
1057 
1058 // CHECK-NOT: {{^}}Dumping
1059 // CHECK:  "kind": "IfStmt",
1060 // CHECK-NEXT:  "range": {
1061 // CHECK-NEXT:   "begin": {
1062 // CHECK-NEXT:    "offset": {{[0-9]+}},
1063 // CHECK-NEXT:    "line": 30,
1064 // CHECK-NEXT:    "col": 3,
1065 // CHECK-NEXT:    "tokLen": 2
1066 // CHECK-NEXT:   },
1067 // CHECK-NEXT:   "end": {
1068 // CHECK-NEXT:    "offset": {{[0-9]+}},
1069 // CHECK-NEXT:    "col": 25,
1070 // CHECK-NEXT:    "tokLen": 1
1071 // CHECK-NEXT:   }
1072 // CHECK-NEXT:  },
1073 // CHECK-NEXT:  "hasElse": true,
1074 // CHECK-NEXT:  "isConsteval": true,
1075 // CHECK-NEXT:  "inner": [
1076 // CHECK-NEXT:   {
1077 // CHECK-NEXT:    "id": "0x{{.*}}",
1078 // CHECK-NEXT:    "kind": "CompoundStmt",
1079 // CHECK-NEXT:    "range": {
1080 // CHECK-NEXT:     "begin": {
1081 // CHECK-NEXT:      "offset": {{[0-9]+}},
1082 // CHECK-NEXT:      "col": 16,
1083 // CHECK-NEXT:      "tokLen": 1
1084 // CHECK-NEXT:     },
1085 // CHECK-NEXT:     "end": {
1086 // CHECK-NEXT:      "offset": {{[0-9]+}},
1087 // CHECK-NEXT:      "col": 17,
1088 // CHECK-NEXT:      "tokLen": 1
1089 // CHECK-NEXT:     }
1090 // CHECK-NEXT:    }
1091 // CHECK-NEXT:   },
1092 // CHECK-NEXT:   {
1093 // CHECK-NEXT:    "id": "0x{{.*}}",
1094 // CHECK-NEXT:    "kind": "CompoundStmt",
1095 // CHECK-NEXT:    "range": {
1096 // CHECK-NEXT:     "begin": {
1097 // CHECK-NEXT:      "offset": {{[0-9]+}},
1098 // CHECK-NEXT:      "col": 24,
1099 // CHECK-NEXT:      "tokLen": 1
1100 // CHECK-NEXT:     },
1101 // CHECK-NEXT:     "end": {
1102 // CHECK-NEXT:      "offset": {{[0-9]+}},
1103 // CHECK-NEXT:      "col": 25,
1104 // CHECK-NEXT:      "tokLen": 1
1105 // CHECK-NEXT:     }
1106 // CHECK-NEXT:    }
1107 // CHECK-NEXT:   }
1108 // CHECK-NEXT:  ]
1109 // CHECK-NEXT: }
1110 
1111 
1112 // CHECK-NOT: {{^}}Dumping
1113 // CHECK:  "kind": "IfStmt",
1114 // CHECK-NEXT:  "range": {
1115 // CHECK-NEXT:   "begin": {
1116 // CHECK-NEXT:    "offset": {{[0-9]+}},
1117 // CHECK-NEXT:    "line": 32,
1118 // CHECK-NEXT:    "col": 3,
1119 // CHECK-NEXT:    "tokLen": 2
1120 // CHECK-NEXT:   },
1121 // CHECK-NEXT:   "end": {
1122 // CHECK-NEXT:    "offset": {{[0-9]+}},
1123 // CHECK-NEXT:    "col": 21,
1124 // CHECK-NEXT:    "tokLen": 1
1125 // CHECK-NEXT:   }
1126 // CHECK-NEXT:  },
1127 // CHECK-NEXT:  "isConsteval": true,
1128 // CHECK-NEXT:  "constevalIsNegated": true,
1129 // CHECK-NEXT:  "inner": [
1130 // CHECK-NEXT:   {
1131 // CHECK-NEXT:    "id": "0x{{.*}}",
1132 // CHECK-NEXT:    "kind": "CompoundStmt",
1133 // CHECK-NEXT:    "range": {
1134 // CHECK-NEXT:     "begin": {
1135 // CHECK-NEXT:      "offset": {{[0-9]+}},
1136 // CHECK-NEXT:      "col": 20,
1137 // CHECK-NEXT:      "tokLen": 1
1138 // CHECK-NEXT:     },
1139 // CHECK-NEXT:     "end": {
1140 // CHECK-NEXT:      "offset": {{[0-9]+}},
1141 // CHECK-NEXT:      "col": 21,
1142 // CHECK-NEXT:      "tokLen": 1
1143 // CHECK-NEXT:     }
1144 // CHECK-NEXT:    }
1145 // CHECK-NEXT:   }
1146 // CHECK-NEXT:  ]
1147 // CHECK-NEXT: }
1148 
1149 
1150 // CHECK-NOT: {{^}}Dumping
1151 // CHECK:  "kind": "IfStmt",
1152 // CHECK-NEXT:  "range": {
1153 // CHECK-NEXT:   "begin": {
1154 // CHECK-NEXT:    "offset": {{[0-9]+}},
1155 // CHECK-NEXT:    "line": 34,
1156 // CHECK-NEXT:    "col": 3,
1157 // CHECK-NEXT:    "tokLen": 2
1158 // CHECK-NEXT:   },
1159 // CHECK-NEXT:   "end": {
1160 // CHECK-NEXT:    "offset": {{[0-9]+}},
1161 // CHECK-NEXT:    "col": 29,
1162 // CHECK-NEXT:    "tokLen": 1
1163 // CHECK-NEXT:   }
1164 // CHECK-NEXT:  },
1165 // CHECK-NEXT:  "hasElse": true,
1166 // CHECK-NEXT:  "isConsteval": true,
1167 // CHECK-NEXT:  "constevalIsNegated": true,
1168 // CHECK-NEXT:  "inner": [
1169 // CHECK-NEXT:   {
1170 // CHECK-NEXT:    "id": "0x{{.*}}",
1171 // CHECK-NEXT:    "kind": "CompoundStmt",
1172 // CHECK-NEXT:    "range": {
1173 // CHECK-NEXT:     "begin": {
1174 // CHECK-NEXT:      "offset": {{[0-9]+}},
1175 // CHECK-NEXT:      "col": 20,
1176 // CHECK-NEXT:      "tokLen": 1
1177 // CHECK-NEXT:     },
1178 // CHECK-NEXT:     "end": {
1179 // CHECK-NEXT:      "offset": {{[0-9]+}},
1180 // CHECK-NEXT:      "col": 21,
1181 // CHECK-NEXT:      "tokLen": 1
1182 // CHECK-NEXT:     }
1183 // CHECK-NEXT:    }
1184 // CHECK-NEXT:   },
1185 // CHECK-NEXT:   {
1186 // CHECK-NEXT:    "id": "0x{{.*}}",
1187 // CHECK-NEXT:    "kind": "CompoundStmt",
1188 // CHECK-NEXT:    "range": {
1189 // CHECK-NEXT:     "begin": {
1190 // CHECK-NEXT:      "offset": {{[0-9]+}},
1191 // CHECK-NEXT:      "col": 28,
1192 // CHECK-NEXT:      "tokLen": 1
1193 // CHECK-NEXT:     },
1194 // CHECK-NEXT:     "end": {
1195 // CHECK-NEXT:      "offset": {{[0-9]+}},
1196 // CHECK-NEXT:      "col": 29,
1197 // CHECK-NEXT:      "tokLen": 1
1198 // CHECK-NEXT:     }
1199 // CHECK-NEXT:    }
1200 // CHECK-NEXT:   }
1201 // CHECK-NEXT:  ]
1202 // CHECK-NEXT: }
1203