|  | // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++23 -ast-dump=json %s | FileCheck %s | 
|  |  | 
|  | void func(int val) { | 
|  | if (val) | 
|  | ; | 
|  |  | 
|  | if (val) | 
|  | ; | 
|  | else | 
|  | ; | 
|  |  | 
|  | if (val) | 
|  | ; | 
|  | else if (val) | 
|  | ; | 
|  | else | 
|  | ; | 
|  |  | 
|  | if constexpr(10 == 10) | 
|  | ; | 
|  |  | 
|  | if (int i = 12) | 
|  | ; | 
|  |  | 
|  | if (int i = 12; i) | 
|  | ; | 
|  |  | 
|  | if consteval {} | 
|  |  | 
|  | if consteval {} else {} | 
|  |  | 
|  | if not consteval {} | 
|  |  | 
|  | if not consteval {} else {} | 
|  | } | 
|  |  | 
|  | // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py | 
|  | // using --filters=IfStmt | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 4, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 5, | 
|  | // CHECK-NEXT:    "col": 5, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 4, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "type": { | 
|  | // CHECK-NEXT:     "qualType": "bool" | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:    "castKind": "IntegralToBoolean", | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "castKind": "LValueToRValue", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "DeclRefExpr", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 7, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 7, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "lvalue", | 
|  | // CHECK-NEXT:        "referencedDecl": { | 
|  | // CHECK-NEXT:         "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:         "kind": "ParmVarDecl", | 
|  | // CHECK-NEXT:         "name": "val", | 
|  | // CHECK-NEXT:         "type": { | 
|  | // CHECK-NEXT:          "qualType": "int" | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        } | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 5, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 7, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 10, | 
|  | // CHECK-NEXT:    "col": 5, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "hasElse": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 7, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "type": { | 
|  | // CHECK-NEXT:     "qualType": "bool" | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:    "castKind": "IntegralToBoolean", | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "castKind": "LValueToRValue", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "DeclRefExpr", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 7, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 7, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "lvalue", | 
|  | // CHECK-NEXT:        "referencedDecl": { | 
|  | // CHECK-NEXT:         "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:         "kind": "ParmVarDecl", | 
|  | // CHECK-NEXT:         "name": "val", | 
|  | // CHECK-NEXT:         "type": { | 
|  | // CHECK-NEXT:          "qualType": "int" | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        } | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 8, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 10, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 12, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 17, | 
|  | // CHECK-NEXT:    "col": 5, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "hasElse": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 12, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "type": { | 
|  | // CHECK-NEXT:     "qualType": "bool" | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:    "castKind": "IntegralToBoolean", | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "castKind": "LValueToRValue", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "DeclRefExpr", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 7, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 7, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "lvalue", | 
|  | // CHECK-NEXT:        "referencedDecl": { | 
|  | // CHECK-NEXT:         "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:         "kind": "ParmVarDecl", | 
|  | // CHECK-NEXT:         "name": "val", | 
|  | // CHECK-NEXT:         "type": { | 
|  | // CHECK-NEXT:          "qualType": "int" | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        } | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 13, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "IfStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 14, | 
|  | // CHECK-NEXT:      "col": 8, | 
|  | // CHECK-NEXT:      "tokLen": 2 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 17, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "hasElse": true, | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "line": 14, | 
|  | // CHECK-NEXT:        "col": 12, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 12, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "bool" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "castKind": "IntegralToBoolean", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 12, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 12, | 
|  | // CHECK-NEXT:          "tokLen": 3 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:        "castKind": "LValueToRValue", | 
|  | // CHECK-NEXT:        "inner": [ | 
|  | // CHECK-NEXT:         { | 
|  | // CHECK-NEXT:          "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:          "kind": "DeclRefExpr", | 
|  | // CHECK-NEXT:          "range": { | 
|  | // CHECK-NEXT:           "begin": { | 
|  | // CHECK-NEXT:            "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:            "col": 12, | 
|  | // CHECK-NEXT:            "tokLen": 3 | 
|  | // CHECK-NEXT:           }, | 
|  | // CHECK-NEXT:           "end": { | 
|  | // CHECK-NEXT:            "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:            "col": 12, | 
|  | // CHECK-NEXT:            "tokLen": 3 | 
|  | // CHECK-NEXT:           } | 
|  | // CHECK-NEXT:          }, | 
|  | // CHECK-NEXT:          "type": { | 
|  | // CHECK-NEXT:           "qualType": "int" | 
|  | // CHECK-NEXT:          }, | 
|  | // CHECK-NEXT:          "valueCategory": "lvalue", | 
|  | // CHECK-NEXT:          "referencedDecl": { | 
|  | // CHECK-NEXT:           "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:           "kind": "ParmVarDecl", | 
|  | // CHECK-NEXT:           "name": "val", | 
|  | // CHECK-NEXT:           "type": { | 
|  | // CHECK-NEXT:            "qualType": "int" | 
|  | // CHECK-NEXT:           } | 
|  | // CHECK-NEXT:          } | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        ] | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "NullStmt", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "line": 15, | 
|  | // CHECK-NEXT:        "col": 5, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 5, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      } | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "NullStmt", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "line": 17, | 
|  | // CHECK-NEXT:        "col": 5, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 5, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      } | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 19, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 20, | 
|  | // CHECK-NEXT:    "col": 5, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "isConstexpr": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "ConstantExpr", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 19, | 
|  | // CHECK-NEXT:      "col": 16, | 
|  | // CHECK-NEXT:      "tokLen": 2 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 22, | 
|  | // CHECK-NEXT:      "tokLen": 2 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "type": { | 
|  | // CHECK-NEXT:     "qualType": "bool" | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:    "value": "true", | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "BinaryOperator", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 16, | 
|  | // CHECK-NEXT:        "tokLen": 2 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 22, | 
|  | // CHECK-NEXT:        "tokLen": 2 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "bool" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "opcode": "==", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "IntegerLiteral", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 16, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 16, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:        "value": "10" | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "IntegerLiteral", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 22, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 22, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:        "value": "10" | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 20, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 22, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 23, | 
|  | // CHECK-NEXT:    "col": 5, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "hasVar": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "DeclStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 22, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 15, | 
|  | // CHECK-NEXT:      "tokLen": 2 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "VarDecl", | 
|  | // CHECK-NEXT:      "loc": { | 
|  | // CHECK-NEXT:       "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:       "col": 11, | 
|  | // CHECK-NEXT:       "tokLen": 1 | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 15, | 
|  | // CHECK-NEXT:        "tokLen": 2 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "isUsed": true, | 
|  | // CHECK-NEXT:      "name": "i", | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "init": "c", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "IntegerLiteral", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 15, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 15, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:        "value": "12" | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 11, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 11, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "type": { | 
|  | // CHECK-NEXT:     "qualType": "bool" | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:    "castKind": "IntegralToBoolean", | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 11, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 11, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "castKind": "LValueToRValue", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "DeclRefExpr", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 11, | 
|  | // CHECK-NEXT:          "tokLen": 1 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 11, | 
|  | // CHECK-NEXT:          "tokLen": 1 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "lvalue", | 
|  | // CHECK-NEXT:        "referencedDecl": { | 
|  | // CHECK-NEXT:         "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:         "kind": "VarDecl", | 
|  | // CHECK-NEXT:         "name": "i", | 
|  | // CHECK-NEXT:         "type": { | 
|  | // CHECK-NEXT:          "qualType": "int" | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        } | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 23, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 25, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 26, | 
|  | // CHECK-NEXT:    "col": 5, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "hasInit": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "DeclStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 25, | 
|  | // CHECK-NEXT:      "col": 7, | 
|  | // CHECK-NEXT:      "tokLen": 3 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 17, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "VarDecl", | 
|  | // CHECK-NEXT:      "loc": { | 
|  | // CHECK-NEXT:       "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:       "col": 11, | 
|  | // CHECK-NEXT:       "tokLen": 1 | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 7, | 
|  | // CHECK-NEXT:        "tokLen": 3 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 15, | 
|  | // CHECK-NEXT:        "tokLen": 2 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "isUsed": true, | 
|  | // CHECK-NEXT:      "name": "i", | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "init": "c", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "IntegerLiteral", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 15, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 15, | 
|  | // CHECK-NEXT:          "tokLen": 2 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:        "value": "12" | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 19, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 19, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "type": { | 
|  | // CHECK-NEXT:     "qualType": "bool" | 
|  | // CHECK-NEXT:    }, | 
|  | // CHECK-NEXT:    "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:    "castKind": "IntegralToBoolean", | 
|  | // CHECK-NEXT:    "inner": [ | 
|  | // CHECK-NEXT:     { | 
|  | // CHECK-NEXT:      "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:      "kind": "ImplicitCastExpr", | 
|  | // CHECK-NEXT:      "range": { | 
|  | // CHECK-NEXT:       "begin": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 19, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       }, | 
|  | // CHECK-NEXT:       "end": { | 
|  | // CHECK-NEXT:        "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:        "col": 19, | 
|  | // CHECK-NEXT:        "tokLen": 1 | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "type": { | 
|  | // CHECK-NEXT:       "qualType": "int" | 
|  | // CHECK-NEXT:      }, | 
|  | // CHECK-NEXT:      "valueCategory": "prvalue", | 
|  | // CHECK-NEXT:      "castKind": "LValueToRValue", | 
|  | // CHECK-NEXT:      "inner": [ | 
|  | // CHECK-NEXT:       { | 
|  | // CHECK-NEXT:        "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:        "kind": "DeclRefExpr", | 
|  | // CHECK-NEXT:        "range": { | 
|  | // CHECK-NEXT:         "begin": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 19, | 
|  | // CHECK-NEXT:          "tokLen": 1 | 
|  | // CHECK-NEXT:         }, | 
|  | // CHECK-NEXT:         "end": { | 
|  | // CHECK-NEXT:          "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:          "col": 19, | 
|  | // CHECK-NEXT:          "tokLen": 1 | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "type": { | 
|  | // CHECK-NEXT:         "qualType": "int" | 
|  | // CHECK-NEXT:        }, | 
|  | // CHECK-NEXT:        "valueCategory": "lvalue", | 
|  | // CHECK-NEXT:        "referencedDecl": { | 
|  | // CHECK-NEXT:         "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:         "kind": "VarDecl", | 
|  | // CHECK-NEXT:         "name": "i", | 
|  | // CHECK-NEXT:         "type": { | 
|  | // CHECK-NEXT:          "qualType": "int" | 
|  | // CHECK-NEXT:         } | 
|  | // CHECK-NEXT:        } | 
|  | // CHECK-NEXT:       } | 
|  | // CHECK-NEXT:      ] | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    ] | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "NullStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "line": 26, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 5, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 28, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "col": 17, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "isConsteval": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "CompoundStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 16, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 17, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 30, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "col": 25, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "hasElse": true, | 
|  | // CHECK-NEXT:  "isConsteval": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "CompoundStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 16, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 17, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "CompoundStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 24, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 25, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 32, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "col": 21, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "isConsteval": true, | 
|  | // CHECK-NEXT:  "constevalIsNegated": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "CompoundStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 20, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 21, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } | 
|  |  | 
|  |  | 
|  | // CHECK-NOT: {{^}}Dumping | 
|  | // CHECK:  "kind": "IfStmt", | 
|  | // CHECK-NEXT:  "range": { | 
|  | // CHECK-NEXT:   "begin": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "line": 34, | 
|  | // CHECK-NEXT:    "col": 3, | 
|  | // CHECK-NEXT:    "tokLen": 2 | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   "end": { | 
|  | // CHECK-NEXT:    "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:    "col": 29, | 
|  | // CHECK-NEXT:    "tokLen": 1 | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  }, | 
|  | // CHECK-NEXT:  "hasElse": true, | 
|  | // CHECK-NEXT:  "isConsteval": true, | 
|  | // CHECK-NEXT:  "constevalIsNegated": true, | 
|  | // CHECK-NEXT:  "inner": [ | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "CompoundStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 20, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 21, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   }, | 
|  | // CHECK-NEXT:   { | 
|  | // CHECK-NEXT:    "id": "0x{{.*}}", | 
|  | // CHECK-NEXT:    "kind": "CompoundStmt", | 
|  | // CHECK-NEXT:    "range": { | 
|  | // CHECK-NEXT:     "begin": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 28, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     }, | 
|  | // CHECK-NEXT:     "end": { | 
|  | // CHECK-NEXT:      "offset": {{[0-9]+}}, | 
|  | // CHECK-NEXT:      "col": 29, | 
|  | // CHECK-NEXT:      "tokLen": 1 | 
|  | // CHECK-NEXT:     } | 
|  | // CHECK-NEXT:    } | 
|  | // CHECK-NEXT:   } | 
|  | // CHECK-NEXT:  ] | 
|  | // CHECK-NEXT: } |