[NFC] Regenerate ast-dump-json tests
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Tue, 12 Nov 2019 12:02:07 +0000 (12:02 +0000)
committerAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Fri, 15 Nov 2019 12:52:56 +0000 (12:52 +0000)
This was done by running `python $LLVM_BINDIR/gen_ast_dump_json_test.py --update --source $LLVM_SRC/clang/test/AST/*-json.*`
Only changes are whitespace and line endings.

Differential Revision: https://reviews.llvm.org/D70119

clang/test/AST/ast-dump-decl-json.m
clang/test/AST/ast-dump-expr-json.c

index 168b1f5..bb28419 100644 (file)
@@ -1477,171 +1477,171 @@ void f() {
 // CHECK-NEXT:    }
 // CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:     "id": "0x{{.*}}", 
-// CHECK-NEXT:     "kind": "ObjCMethodDecl",
-// CHECK-NEXT:     "loc": {
-// CHECK-NEXT:       "offset": 1109,
-// CHECK-NEXT:       "line": 70,
-// CHECK-NEXT:       "col": 1,
-// CHECK-NEXT:       "tokLen": 1
-// CHECK-NEXT:     },
-// CHECK-NEXT:     "range": {
-// CHECK-NEXT:       "begin": {
-// CHECK-NEXT:         "offset": 1109,
-// CHECK-NEXT:         "col": 1,
-// CHECK-NEXT:         "tokLen": 1
-// CHECK-NEXT:       },
-// CHECK-NEXT:       "end": {
-// CHECK-NEXT:         "offset": 1121,
-// CHECK-NEXT:         "col": 13,
-// CHECK-NEXT:         "tokLen": 3
-// CHECK-NEXT:       }
-// CHECK-NEXT:     },
-// CHECK-NEXT:     "isImplicit": true,
-// CHECK-NEXT:     "name": "getterFoo",
-// CHECK-NEXT:     "returnType": {
-// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1109,
+// CHECK-NEXT:     "line": 70,
+// CHECK-NEXT:     "col": 1,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1109,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
-// CHECK-NEXT:     "instance": true
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1121,
+// CHECK-NEXT:      "col": 13,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "getterFoo",
+// CHECK-NEXT:    "returnType": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true
 // CHECK-NEXT:   },
 // CHECK-NEXT:   {
-// CHECK-NEXT:     "id": "0x{{.*}}",
-// CHECK-NEXT:     "kind": "ObjCMethodDecl",
-// CHECK-NEXT:     "loc": {
-// CHECK-NEXT:       "offset": 1109,
-// CHECK-NEXT:       "col": 1,
-// CHECK-NEXT:       "tokLen": 1
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1109,
+// CHECK-NEXT:     "col": 1,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1109,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
-// CHECK-NEXT:     "range": {
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1121,
+// CHECK-NEXT:      "col": 13,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "setterFoo:",
+// CHECK-NEXT:    "returnType": {
+// CHECK-NEXT:     "qualType": "void"
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true,
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
+// CHECK-NEXT:      "loc": {
+// CHECK-NEXT:       "offset": 1033,
+// CHECK-NEXT:       "line": 63,
+// CHECK-NEXT:       "col": 52,
+// CHECK-NEXT:       "tokLen": 3
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
-// CHECK-NEXT:         "offset": 1109,
-// CHECK-NEXT:         "col": 1,
-// CHECK-NEXT:         "tokLen": 1
+// CHECK-NEXT:        "offset": 1033,
+// CHECK-NEXT:        "col": 52,
+// CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
-// CHECK-NEXT:         "offset": 1121,
-// CHECK-NEXT:         "col": 13,
-// CHECK-NEXT:         "tokLen": 3
+// CHECK-NEXT:        "offset": 1033,
+// CHECK-NEXT:        "col": 52,
+// CHECK-NEXT:        "tokLen": 3
 // CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "name": "foo",
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      }
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1128,
+// CHECK-NEXT:     "line": 71,
+// CHECK-NEXT:     "col": 1,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1128,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
-// CHECK-NEXT:     "isImplicit": true,
-// CHECK-NEXT:     "name": "setterFoo:",
-// CHECK-NEXT:     "returnType": {
-// CHECK-NEXT:       "qualType": "void"
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1140,
+// CHECK-NEXT:      "col": 13,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "bar",
+// CHECK-NEXT:    "returnType": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "instance": true
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ObjCMethodDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1128,
+// CHECK-NEXT:     "col": 1,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1128,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
 // CHECK-NEXT:     },
-// CHECK-NEXT:     "instance": true,
-// CHECK-NEXT:     "inner": [
-// CHECK-NEXT:       {
-// CHECK-NEXT:         "id": "0x{{.*}}",
-// CHECK-NEXT:         "kind": "ParmVarDecl",
-// CHECK-NEXT:         "loc": {
-// CHECK-NEXT:           "offset": 1033,
-// CHECK-NEXT:           "line": 63,
-// CHECK-NEXT:           "col": 52,
-// CHECK-NEXT:           "tokLen": 3
-// CHECK-NEXT:         },
-// CHECK-NEXT:         "range": {
-// CHECK-NEXT:           "begin": {
-// CHECK-NEXT:             "offset": 1033,
-// CHECK-NEXT:             "col": 52,
-// CHECK-NEXT:             "tokLen": 3
-// CHECK-NEXT:           },
-// CHECK-NEXT:           "end": {
-// CHECK-NEXT:             "offset": 1033,
-// CHECK-NEXT:             "col": 52,
-// CHECK-NEXT:             "tokLen": 3
-// CHECK-NEXT:           }
-// CHECK-NEXT:         },
-// CHECK-NEXT:         "name": "foo",
-// CHECK-NEXT:         "type": {
-// CHECK-NEXT:           "qualType": "int"
-// CHECK-NEXT:         }
-// CHECK-NEXT:       }
-// CHECK-NEXT:      ]
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1140,
+// CHECK-NEXT:      "col": 13,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     }
 // CHECK-NEXT:    },
-// CHECK-NEXT:    {
-// CHECK-NEXT:      "id": "0x{{.*}}",
-// CHECK-NEXT:      "kind": "ObjCMethodDecl",
-// CHECK-NEXT:      "loc": {
-// CHECK-NEXT:        "offset": 1128,
-// CHECK-NEXT:        "line": 71,
-// CHECK-NEXT:        "col": 1,
-// CHECK-NEXT:        "tokLen": 1
-// CHECK-NEXT:      },
-// CHECK-NEXT:      "range": {
-// CHECK-NEXT:        "begin": {
-// CHECK-NEXT:          "offset": 1128,
-// CHECK-NEXT:          "col": 1,
-// CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:        },
-// CHECK-NEXT:        "end": {
-// CHECK-NEXT:          "offset": 1140,
-// CHECK-NEXT:          "col": 13,
-// CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:        }
-// CHECK-NEXT:      },
-// CHECK-NEXT:      "isImplicit": true,
-// CHECK-NEXT:      "name": "bar",
-// CHECK-NEXT:      "returnType": {
-// CHECK-NEXT:        "qualType": "int"
-// CHECK-NEXT:      },
-// CHECK-NEXT:      "instance": true
+// CHECK-NEXT:    "isImplicit": true,
+// CHECK-NEXT:    "name": "setBar:",
+// CHECK-NEXT:    "returnType": {
+// CHECK-NEXT:     "qualType": "void"
 // CHECK-NEXT:    },
-// CHECK-NEXT:    {
+// CHECK-NEXT:    "instance": true,
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
 // CHECK-NEXT:      "id": "0x{{.*}}",
-// CHECK-NEXT:      "kind": "ObjCMethodDecl",
+// CHECK-NEXT:      "kind": "ParmVarDecl",
 // CHECK-NEXT:      "loc": {
-// CHECK-NEXT:        "offset": 1128,
-// CHECK-NEXT:        "col": 1,
-// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       "offset": 1052,
+// CHECK-NEXT:       "line": 64,
+// CHECK-NEXT:       "col": 15,
+// CHECK-NEXT:       "tokLen": 3
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
-// CHECK-NEXT:        "begin": {
-// CHECK-NEXT:          "offset": 1128,
-// CHECK-NEXT:          "col": 1,
-// CHECK-NEXT:          "tokLen": 1
-// CHECK-NEXT:        },
-// CHECK-NEXT:        "end": {
-// CHECK-NEXT:          "offset": 1140,
-// CHECK-NEXT:          "col": 13,
-// CHECK-NEXT:          "tokLen": 3
-// CHECK-NEXT:        }
-// CHECK-NEXT:      },
-// CHECK-NEXT:      "isImplicit": true,
-// CHECK-NEXT:      "name": "setBar:",
-// CHECK-NEXT:      "returnType": {
-// CHECK-NEXT:        "qualType": "void"
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1052,
+// CHECK-NEXT:        "col": 15,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1052,
+// CHECK-NEXT:        "col": 15,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       }
 // CHECK-NEXT:      },
-// CHECK-NEXT:      "instance": true,
-// CHECK-NEXT:      "inner": [
-// CHECK-NEXT:        {
-// CHECK-NEXT:          "id": "0x{{.*}}",
-// CHECK-NEXT:          "kind": "ParmVarDecl",
-// CHECK-NEXT:          "loc": {
-// CHECK-NEXT:            "offset": 1052,
-// CHECK-NEXT:            "line": 64,
-// CHECK-NEXT:            "col": 15,
-// CHECK-NEXT:            "tokLen": 3
-// CHECK-NEXT:          },
-// CHECK-NEXT:          "range": {
-// CHECK-NEXT:            "begin": {
-// CHECK-NEXT:              "offset": 1052,
-// CHECK-NEXT:              "col": 15,
-// CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:            },
-// CHECK-NEXT:            "end": {
-// CHECK-NEXT:              "offset": 1052,
-// CHECK-NEXT:              "col": 15,
-// CHECK-NEXT:              "tokLen": 3
-// CHECK-NEXT:            }
-// CHECK-NEXT:          },
-// CHECK-NEXT:          "name": "bar",
-// CHECK-NEXT:          "type": {
-// CHECK-NEXT:            "qualType": "int"
-// CHECK-NEXT:          }
-// CHECK-NEXT:        }
-// CHECK-NEXT:      ]
-// CHECK-NEXT:    }
+// CHECK-NEXT:      "name": "bar",
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      }
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   }
 // CHECK-NEXT:  ]
 // CHECK-NEXT: }
 
index 807f84a..00a57f9 100644 (file)
@@ -106,5434 +106,5434 @@ void PrimaryExpressions(int a) {
   (a);\r
 }\r
 \r
-// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py\r
-// using --filters=FunctionDecl\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 120,\r
-// CHECK-NEXT:   "file": "{{.*}}",\r
-// CHECK-NEXT:   "line": 3,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 5\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 115,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 147,\r
-// CHECK-NEXT:    "line": 5,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "name": "Comma",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (void)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 132,\r
-// CHECK-NEXT:      "line": 3,\r
-// CHECK-NEXT:      "col": 18,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 147,\r
-// CHECK-NEXT:      "line": 5,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 137,\r
-// CHECK-NEXT:        "line": 4,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 143,\r
-// CHECK-NEXT:        "col": 9,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": ",",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "BinaryOperator",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 137,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 140,\r
-// CHECK-NEXT:          "col": 6,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "opcode": ",",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "IntegerLiteral",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 137,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 137,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "value": "1"\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "IntegerLiteral",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 140,\r
-// CHECK-NEXT:            "col": 6,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 140,\r
-// CHECK-NEXT:            "col": 6,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "value": "2"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "IntegerLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 143,\r
-// CHECK-NEXT:          "col": 9,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 143,\r
-// CHECK-NEXT:          "col": 9,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "value": "3"\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 157,\r
-// CHECK-NEXT:   "line": 7,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 10\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 152,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 200,\r
-// CHECK-NEXT:    "line": 10,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "name": "Assignment",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (int)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 172,\r
-// CHECK-NEXT:     "line": 7,\r
-// CHECK-NEXT:     "col": 21,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 168,\r
-// CHECK-NEXT:      "col": 17,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 172,\r
-// CHECK-NEXT:      "col": 21,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "a",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 175,\r
-// CHECK-NEXT:      "col": 24,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 200,\r
-// CHECK-NEXT:      "line": 10,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 180,\r
-// CHECK-NEXT:        "line": 8,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 184,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 2\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "=",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "DeclRefExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 180,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 180,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "referencedDecl": {\r
-// CHECK-NEXT:         "id": "0x{{.*}}",\r
-// CHECK-NEXT:         "kind": "ParmVarDecl",\r
-// CHECK-NEXT:         "name": "a",\r
-// CHECK-NEXT:         "type": {\r
-// CHECK-NEXT:          "qualType": "int"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        }\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "IntegerLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 184,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 2\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 184,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 2\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "value": "12"\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "CompoundAssignOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 191,\r
-// CHECK-NEXT:        "line": 9,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 196,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "+=",\r
-// CHECK-NEXT:      "computeLHSType": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "computeResultType": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "DeclRefExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 191,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 191,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "referencedDecl": {\r
-// CHECK-NEXT:         "id": "0x{{.*}}",\r
-// CHECK-NEXT:         "kind": "ParmVarDecl",\r
-// CHECK-NEXT:         "name": "a",\r
-// CHECK-NEXT:         "type": {\r
-// CHECK-NEXT:          "qualType": "int"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        }\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 196,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 196,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 196,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 196,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 210,\r
-// CHECK-NEXT:   "line": 12,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 12\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 205,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 258,\r
-// CHECK-NEXT:    "line": 15,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "name": "Conditionals",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (int)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 227,\r
-// CHECK-NEXT:     "line": 12,\r
-// CHECK-NEXT:     "col": 23,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 223,\r
-// CHECK-NEXT:      "col": 19,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 227,\r
-// CHECK-NEXT:      "col": 23,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "a",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 230,\r
-// CHECK-NEXT:      "col": 26,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 258,\r
-// CHECK-NEXT:      "line": 15,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ConditionalOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 235,\r
-// CHECK-NEXT:        "line": 13,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 243,\r
-// CHECK-NEXT:        "col": 11,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 235,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 235,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 235,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 235,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "IntegerLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 239,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 239,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "value": "0"\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "IntegerLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 243,\r
-// CHECK-NEXT:          "col": 11,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 243,\r
-// CHECK-NEXT:          "col": 11,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "value": "1"\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryConditionalOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 249,\r
-// CHECK-NEXT:        "line": 14,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 254,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 249,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 249,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 249,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 249,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "OpaqueValueExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 249,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 249,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 249,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 249,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "castKind": "LValueToRValue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "DeclRefExpr",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 249,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 249,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "lvalue",\r
-// CHECK-NEXT:            "referencedDecl": {\r
-// CHECK-NEXT:             "id": "0x{{.*}}",\r
-// CHECK-NEXT:             "kind": "ParmVarDecl",\r
-// CHECK-NEXT:             "name": "a",\r
-// CHECK-NEXT:             "type": {\r
-// CHECK-NEXT:              "qualType": "int"\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            }\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "OpaqueValueExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 249,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 249,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 249,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 249,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "castKind": "LValueToRValue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "DeclRefExpr",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 249,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 249,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "lvalue",\r
-// CHECK-NEXT:            "referencedDecl": {\r
-// CHECK-NEXT:             "id": "0x{{.*}}",\r
-// CHECK-NEXT:             "kind": "ParmVarDecl",\r
-// CHECK-NEXT:             "name": "a",\r
-// CHECK-NEXT:             "type": {\r
-// CHECK-NEXT:              "qualType": "int"\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            }\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "IntegerLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 254,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 254,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "value": "0"\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 268,\r
-// CHECK-NEXT:   "line": 17,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 15\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 263,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 686,\r
-// CHECK-NEXT:    "line": 49,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "name": "BinaryOperators",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (int, int)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 288,\r
-// CHECK-NEXT:     "line": 17,\r
-// CHECK-NEXT:     "col": 26,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 284,\r
-// CHECK-NEXT:      "col": 22,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 288,\r
-// CHECK-NEXT:      "col": 26,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "a",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 295,\r
-// CHECK-NEXT:     "col": 33,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 291,\r
-// CHECK-NEXT:      "col": 29,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 295,\r
-// CHECK-NEXT:      "col": 33,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "b",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 298,\r
-// CHECK-NEXT:      "col": 36,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 686,\r
-// CHECK-NEXT:      "line": 49,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 327,\r
-// CHECK-NEXT:        "line": 19,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 332,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "||",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 327,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 327,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 327,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 327,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 332,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 332,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 332,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 332,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 338,\r
-// CHECK-NEXT:        "line": 20,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 343,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "&&",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 338,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 338,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 338,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 338,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 343,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 343,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 343,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 343,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 375,\r
-// CHECK-NEXT:        "line": 23,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 379,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "|",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 375,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 375,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 375,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 375,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 379,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 379,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 379,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 379,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 385,\r
-// CHECK-NEXT:        "line": 24,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 389,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "^",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 385,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 385,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 385,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 385,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 389,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 389,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 389,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 389,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 395,\r
-// CHECK-NEXT:        "line": 25,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 399,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "&",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 395,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 395,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 395,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 395,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 399,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 399,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 399,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 399,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 432,\r
-// CHECK-NEXT:        "line": 28,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 437,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "==",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 432,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 432,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 432,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 432,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 437,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 437,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 437,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 437,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 443,\r
-// CHECK-NEXT:        "line": 29,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 448,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "!=",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 443,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 443,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 443,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 443,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 448,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 448,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 448,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 448,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 483,\r
-// CHECK-NEXT:        "line": 32,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 487,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "<",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 483,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 483,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 483,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 483,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 487,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 487,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 487,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 487,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 493,\r
-// CHECK-NEXT:        "line": 33,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 497,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": ">",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 493,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 493,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 493,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 493,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 497,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 497,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 497,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 497,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 503,\r
-// CHECK-NEXT:        "line": 34,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 508,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "<=",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 503,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 503,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 503,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 503,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 508,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 508,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 508,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 508,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 514,\r
-// CHECK-NEXT:        "line": 35,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 519,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": ">=",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 514,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 514,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 514,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 514,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 519,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 519,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 519,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 519,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 556,\r
-// CHECK-NEXT:        "line": 38,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 561,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "<<",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 556,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 556,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 556,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 556,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 561,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 561,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 561,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 561,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 567,\r
-// CHECK-NEXT:        "line": 39,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 572,\r
-// CHECK-NEXT:        "col": 8,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": ">>",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 567,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 567,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 567,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 567,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 572,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 572,\r
-// CHECK-NEXT:          "col": 8,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 572,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 572,\r
-// CHECK-NEXT:            "col": 8,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 605,\r
-// CHECK-NEXT:        "line": 42,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 609,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "+",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 605,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 605,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 605,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 605,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 609,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 609,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 609,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 609,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 615,\r
-// CHECK-NEXT:        "line": 43,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 619,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "-",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 615,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 615,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 615,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 615,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 619,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 619,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 619,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 619,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 658,\r
-// CHECK-NEXT:        "line": 46,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 662,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "*",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 658,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 658,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 658,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 658,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 662,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 662,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 662,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 662,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 668,\r
-// CHECK-NEXT:        "line": 47,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 672,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "/",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 668,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 668,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 668,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 668,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 672,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 672,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 672,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 672,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "BinaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 678,\r
-// CHECK-NEXT:        "line": 48,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 682,\r
-// CHECK-NEXT:        "col": 7,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "opcode": "%",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 678,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 678,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 678,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 678,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 682,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 682,\r
-// CHECK-NEXT:          "col": 7,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 682,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 682,\r
-// CHECK-NEXT:            "col": 7,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 696,\r
-// CHECK-NEXT:   "line": 51,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 14\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 691,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 894,\r
-// CHECK-NEXT:    "line": 66,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "isUsed": true,\r
-// CHECK-NEXT:  "name": "UnaryOperators",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (int, int *)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 715,\r
-// CHECK-NEXT:     "line": 51,\r
-// CHECK-NEXT:     "col": 25,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 711,\r
-// CHECK-NEXT:      "col": 21,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 715,\r
-// CHECK-NEXT:      "col": 25,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "a",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 723,\r
-// CHECK-NEXT:     "col": 33,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 718,\r
-// CHECK-NEXT:      "col": 28,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 723,\r
-// CHECK-NEXT:      "col": 33,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "b",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int *"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 726,\r
-// CHECK-NEXT:      "col": 36,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 894,\r
-// CHECK-NEXT:      "line": 66,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "CStyleCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 752,\r
-// CHECK-NEXT:        "line": 53,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 759,\r
-// CHECK-NEXT:        "col": 10,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "float"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "IntegralToFloating",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 759,\r
-// CHECK-NEXT:          "col": 10,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 759,\r
-// CHECK-NEXT:          "col": 10,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "isPartOfExplicitCast": true,\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 759,\r
-// CHECK-NEXT:            "col": 10,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 759,\r
-// CHECK-NEXT:            "col": 10,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 812,\r
-// CHECK-NEXT:        "line": 57,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 813,\r
-// CHECK-NEXT:        "col": 4,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "isPostfix": false,\r
-// CHECK-NEXT:      "opcode": "-",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 813,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 813,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 813,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 813,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 819,\r
-// CHECK-NEXT:        "line": 58,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 820,\r
-// CHECK-NEXT:        "col": 4,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "isPostfix": false,\r
-// CHECK-NEXT:      "opcode": "+",\r
-// CHECK-NEXT:      "canOverflow": false,\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 820,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 820,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 820,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 820,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 826,\r
-// CHECK-NEXT:        "line": 59,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 827,\r
-// CHECK-NEXT:        "col": 4,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "isPostfix": false,\r
-// CHECK-NEXT:      "opcode": "&",\r
-// CHECK-NEXT:      "canOverflow": false,\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "DeclRefExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 827,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 827,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "referencedDecl": {\r
-// CHECK-NEXT:         "id": "0x{{.*}}",\r
-// CHECK-NEXT:         "kind": "ParmVarDecl",\r
-// CHECK-NEXT:         "name": "a",\r
-// CHECK-NEXT:         "type": {\r
-// CHECK-NEXT:          "qualType": "int"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        }\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 833,\r
-// CHECK-NEXT:        "line": 60,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 834,\r
-// CHECK-NEXT:        "col": 4,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "UnaryOperator",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 833,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 834,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "isPostfix": false,\r
-// CHECK-NEXT:        "opcode": "*",\r
-// CHECK-NEXT:        "canOverflow": false,\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 834,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 834,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int *"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "castKind": "LValueToRValue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "DeclRefExpr",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 834,\r
-// CHECK-NEXT:              "col": 4,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 834,\r
-// CHECK-NEXT:              "col": 4,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int *"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "lvalue",\r
-// CHECK-NEXT:            "referencedDecl": {\r
-// CHECK-NEXT:             "id": "0x{{.*}}",\r
-// CHECK-NEXT:             "kind": "ParmVarDecl",\r
-// CHECK-NEXT:             "name": "b",\r
-// CHECK-NEXT:             "type": {\r
-// CHECK-NEXT:              "qualType": "int *"\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            }\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryOperator",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 840,\r
-// CHECK-NEXT:        "line": 61,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 841,\r
-// CHECK-NEXT:        "col": 4,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "isPostfix": false,\r
-// CHECK-NEXT:      "opcode": "!",\r
-// CHECK-NEXT:      "canOverflow": false,\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 841,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 841,\r
-// CHECK-NEXT:          "col": 4,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 841,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 841,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 849,\r
-// CHECK-NEXT:        "line": 63,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 6\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 856,\r
-// CHECK-NEXT:        "col": 10,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "unsigned long"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "name": "sizeof",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "DeclRefExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 856,\r
-// CHECK-NEXT:          "col": 10,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 856,\r
-// CHECK-NEXT:          "col": 10,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "referencedDecl": {\r
-// CHECK-NEXT:         "id": "0x{{.*}}",\r
-// CHECK-NEXT:         "kind": "ParmVarDecl",\r
-// CHECK-NEXT:         "name": "a",\r
-// CHECK-NEXT:         "type": {\r
-// CHECK-NEXT:          "qualType": "int"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "nonOdrUseReason": "unevaluated"\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 862,\r
-// CHECK-NEXT:        "line": 64,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 6\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 872,\r
-// CHECK-NEXT:        "col": 13,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "unsigned long"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "name": "sizeof",\r
-// CHECK-NEXT:      "argType": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      }\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 878,\r
-// CHECK-NEXT:        "line": 65,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 8\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 890,\r
-// CHECK-NEXT:        "col": 15,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "unsigned long"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "name": "alignof",\r
-// CHECK-NEXT:      "argType": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      }\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 932,\r
-// CHECK-NEXT:   "line": 72,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 16\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 927,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 1136,\r
-// CHECK-NEXT:    "line": 83,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "name": "PostfixOperators",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (int *, struct S, struct S *)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 954,\r
-// CHECK-NEXT:     "line": 72,\r
-// CHECK-NEXT:     "col": 28,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 949,\r
-// CHECK-NEXT:      "col": 23,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 954,\r
-// CHECK-NEXT:      "col": 28,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "a",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int *"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 966,\r
-// CHECK-NEXT:     "col": 40,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 957,\r
-// CHECK-NEXT:      "col": 31,\r
-// CHECK-NEXT:      "tokLen": 6\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 966,\r
-// CHECK-NEXT:      "col": 40,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "b",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "desugaredQualType": "struct S",\r
-// CHECK-NEXT:     "qualType": "struct S"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 979,\r
-// CHECK-NEXT:     "col": 53,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 969,\r
-// CHECK-NEXT:      "col": 43,\r
-// CHECK-NEXT:      "tokLen": 6\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 979,\r
-// CHECK-NEXT:      "col": 53,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "c",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "struct S *"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 982,\r
-// CHECK-NEXT:      "col": 56,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 1136,\r
-// CHECK-NEXT:      "line": 83,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 987,\r
-// CHECK-NEXT:        "line": 73,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 990,\r
-// CHECK-NEXT:        "col": 6,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ArraySubscriptExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 987,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 990,\r
-// CHECK-NEXT:          "col": 6,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 987,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 987,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int *"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "castKind": "LValueToRValue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "DeclRefExpr",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 987,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 987,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int *"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "lvalue",\r
-// CHECK-NEXT:            "referencedDecl": {\r
-// CHECK-NEXT:             "id": "0x{{.*}}",\r
-// CHECK-NEXT:             "kind": "ParmVarDecl",\r
-// CHECK-NEXT:             "name": "a",\r
-// CHECK-NEXT:             "type": {\r
-// CHECK-NEXT:              "qualType": "int *"\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            }\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "IntegerLiteral",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 989,\r
-// CHECK-NEXT:            "col": 5,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 989,\r
-// CHECK-NEXT:            "col": 5,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "value": "0"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "CallExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 996,\r
-// CHECK-NEXT:        "line": 74,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 14\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1016,\r
-// CHECK-NEXT:        "col": 23,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "void"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 996,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 14\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 996,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 14\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "void (*)(int, int *)"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "FunctionToPointerDecay",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 996,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 14\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 996,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 14\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "void (int, int *)"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "FunctionDecl",\r
-// CHECK-NEXT:           "name": "UnaryOperators",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "void (int, int *)"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1011,\r
-// CHECK-NEXT:          "col": 18,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1012,\r
-// CHECK-NEXT:          "col": 19,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "UnaryOperator",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1011,\r
-// CHECK-NEXT:            "col": 18,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1012,\r
-// CHECK-NEXT:            "col": 19,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "isPostfix": false,\r
-// CHECK-NEXT:          "opcode": "*",\r
-// CHECK-NEXT:          "canOverflow": false,\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1012,\r
-// CHECK-NEXT:              "col": 19,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1012,\r
-// CHECK-NEXT:              "col": 19,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int *"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "rvalue",\r
-// CHECK-NEXT:            "castKind": "LValueToRValue",\r
-// CHECK-NEXT:            "inner": [\r
-// CHECK-NEXT:             {\r
-// CHECK-NEXT:              "id": "0x{{.*}}",\r
-// CHECK-NEXT:              "kind": "DeclRefExpr",\r
-// CHECK-NEXT:              "range": {\r
-// CHECK-NEXT:               "begin": {\r
-// CHECK-NEXT:                "offset": 1012,\r
-// CHECK-NEXT:                "col": 19,\r
-// CHECK-NEXT:                "tokLen": 1\r
-// CHECK-NEXT:               },\r
-// CHECK-NEXT:               "end": {\r
-// CHECK-NEXT:                "offset": 1012,\r
-// CHECK-NEXT:                "col": 19,\r
-// CHECK-NEXT:                "tokLen": 1\r
-// CHECK-NEXT:               }\r
-// CHECK-NEXT:              },\r
-// CHECK-NEXT:              "type": {\r
-// CHECK-NEXT:               "qualType": "int *"\r
-// CHECK-NEXT:              },\r
-// CHECK-NEXT:              "valueCategory": "lvalue",\r
-// CHECK-NEXT:              "referencedDecl": {\r
-// CHECK-NEXT:               "id": "0x{{.*}}",\r
-// CHECK-NEXT:               "kind": "ParmVarDecl",\r
-// CHECK-NEXT:               "name": "a",\r
-// CHECK-NEXT:               "type": {\r
-// CHECK-NEXT:                "qualType": "int *"\r
-// CHECK-NEXT:               }\r
-// CHECK-NEXT:              }\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            ]\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1015,\r
-// CHECK-NEXT:          "col": 22,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1015,\r
-// CHECK-NEXT:          "col": 22,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int *"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "rvalue",\r
-// CHECK-NEXT:        "castKind": "LValueToRValue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1015,\r
-// CHECK-NEXT:            "col": 22,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1015,\r
-// CHECK-NEXT:            "col": 22,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int *"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int *"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1024,\r
-// CHECK-NEXT:        "line": 76,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1026,\r
-// CHECK-NEXT:        "col": 5,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "MemberExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1024,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1026,\r
-// CHECK-NEXT:          "col": 5,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "name": "a",\r
-// CHECK-NEXT:        "isArrow": false,\r
-// CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1024,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1024,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "desugaredQualType": "struct S",\r
-// CHECK-NEXT:           "qualType": "struct S"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "b",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "desugaredQualType": "struct S",\r
-// CHECK-NEXT:            "qualType": "struct S"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1032,\r
-// CHECK-NEXT:        "line": 77,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1035,\r
-// CHECK-NEXT:        "col": 6,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "MemberExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1032,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1035,\r
-// CHECK-NEXT:          "col": 6,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "name": "a",\r
-// CHECK-NEXT:        "isArrow": true,\r
-// CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1032,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1032,\r
-// CHECK-NEXT:            "col": 3,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "struct S *"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "castKind": "LValueToRValue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "DeclRefExpr",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1032,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1032,\r
-// CHECK-NEXT:              "col": 3,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "struct S *"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "lvalue",\r
-// CHECK-NEXT:            "referencedDecl": {\r
-// CHECK-NEXT:             "id": "0x{{.*}}",\r
-// CHECK-NEXT:             "kind": "ParmVarDecl",\r
-// CHECK-NEXT:             "name": "c",\r
-// CHECK-NEXT:             "type": {\r
-// CHECK-NEXT:              "qualType": "struct S *"\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            }\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1092,\r
-// CHECK-NEXT:        "line": 81,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1114,\r
-// CHECK-NEXT:        "col": 25,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "CompoundLiteralExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1092,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1114,\r
-// CHECK-NEXT:          "col": 25,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int [4]"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "InitListExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1101,\r
-// CHECK-NEXT:            "col": 12,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1114,\r
-// CHECK-NEXT:            "col": 25,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int [4]"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "IntegerLiteral",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1102,\r
-// CHECK-NEXT:              "col": 13,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1102,\r
-// CHECK-NEXT:              "col": 13,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "rvalue",\r
-// CHECK-NEXT:            "value": "1"\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "IntegerLiteral",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1105,\r
-// CHECK-NEXT:              "col": 16,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1105,\r
-// CHECK-NEXT:              "col": 16,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "rvalue",\r
-// CHECK-NEXT:            "value": "2"\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "IntegerLiteral",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1108,\r
-// CHECK-NEXT:              "col": 19,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1108,\r
-// CHECK-NEXT:              "col": 19,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "rvalue",\r
-// CHECK-NEXT:            "value": "3"\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "IntegerLiteral",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1111,\r
-// CHECK-NEXT:              "col": 22,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1111,\r
-// CHECK-NEXT:              "col": 22,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "rvalue",\r
-// CHECK-NEXT:            "value": "4"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1120,\r
-// CHECK-NEXT:        "line": 82,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1132,\r
-// CHECK-NEXT:        "col": 15,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "desugaredQualType": "struct S",\r
-// CHECK-NEXT:       "qualType": "struct S"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "CompoundLiteralExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1120,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1132,\r
-// CHECK-NEXT:          "col": 15,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "desugaredQualType": "struct S",\r
-// CHECK-NEXT:         "qualType": "struct S"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "InitListExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1130,\r
-// CHECK-NEXT:            "col": 13,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1132,\r
-// CHECK-NEXT:            "col": 15,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "desugaredQualType": "struct S",\r
-// CHECK-NEXT:           "qualType": "struct S"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "rvalue",\r
-// CHECK-NEXT:          "inner": [\r
-// CHECK-NEXT:           {\r
-// CHECK-NEXT:            "id": "0x{{.*}}",\r
-// CHECK-NEXT:            "kind": "IntegerLiteral",\r
-// CHECK-NEXT:            "range": {\r
-// CHECK-NEXT:             "begin": {\r
-// CHECK-NEXT:              "offset": 1131,\r
-// CHECK-NEXT:              "col": 14,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             },\r
-// CHECK-NEXT:             "end": {\r
-// CHECK-NEXT:              "offset": 1131,\r
-// CHECK-NEXT:              "col": 14,\r
-// CHECK-NEXT:              "tokLen": 1\r
-// CHECK-NEXT:             }\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "type": {\r
-// CHECK-NEXT:             "qualType": "int"\r
-// CHECK-NEXT:            },\r
-// CHECK-NEXT:            "valueCategory": "rvalue",\r
-// CHECK-NEXT:            "value": "1"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          ]\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
-\r
-\r
-// CHECK:  "kind": "FunctionDecl",\r
-// CHECK-NEXT:  "loc": {\r
-// CHECK-NEXT:   "offset": 1165,\r
-// CHECK-NEXT:   "line": 87,\r
-// CHECK-NEXT:   "col": 6,\r
-// CHECK-NEXT:   "tokLen": 18\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "range": {\r
-// CHECK-NEXT:   "begin": {\r
-// CHECK-NEXT:    "offset": 1160,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 4\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   "end": {\r
-// CHECK-NEXT:    "offset": 1360,\r
-// CHECK-NEXT:    "line": 107,\r
-// CHECK-NEXT:    "col": 1,\r
-// CHECK-NEXT:    "tokLen": 1\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "name": "PrimaryExpressions",\r
-// CHECK-NEXT:  "type": {\r
-// CHECK-NEXT:   "qualType": "void (int)"\r
-// CHECK-NEXT:  },\r
-// CHECK-NEXT:  "inner": [\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "ParmVarDecl",\r
-// CHECK-NEXT:    "loc": {\r
-// CHECK-NEXT:     "offset": 1188,\r
-// CHECK-NEXT:     "line": 87,\r
-// CHECK-NEXT:     "col": 29,\r
-// CHECK-NEXT:     "tokLen": 1\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 1184,\r
-// CHECK-NEXT:      "col": 25,\r
-// CHECK-NEXT:      "tokLen": 3\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 1188,\r
-// CHECK-NEXT:      "col": 29,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "isUsed": true,\r
-// CHECK-NEXT:    "name": "a",\r
-// CHECK-NEXT:    "type": {\r
-// CHECK-NEXT:     "qualType": "int"\r
-// CHECK-NEXT:    }\r
-// CHECK-NEXT:   },\r
-// CHECK-NEXT:   {\r
-// CHECK-NEXT:    "id": "0x{{.*}}",\r
-// CHECK-NEXT:    "kind": "CompoundStmt",\r
-// CHECK-NEXT:    "range": {\r
-// CHECK-NEXT:     "begin": {\r
-// CHECK-NEXT:      "offset": 1191,\r
-// CHECK-NEXT:      "col": 32,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     "end": {\r
-// CHECK-NEXT:      "offset": 1360,\r
-// CHECK-NEXT:      "line": 107,\r
-// CHECK-NEXT:      "col": 1,\r
-// CHECK-NEXT:      "tokLen": 1\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    },\r
-// CHECK-NEXT:    "inner": [\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1196,\r
-// CHECK-NEXT:        "line": 88,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1196,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "DeclRefExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1196,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1196,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "referencedDecl": {\r
-// CHECK-NEXT:         "id": "0x{{.*}}",\r
-// CHECK-NEXT:         "kind": "ParmVarDecl",\r
-// CHECK-NEXT:         "name": "a",\r
-// CHECK-NEXT:         "type": {\r
-// CHECK-NEXT:          "qualType": "int"\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        }\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "CharacterLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1202,\r
-// CHECK-NEXT:        "line": 89,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1202,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": 97\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "CharacterLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1210,\r
-// CHECK-NEXT:        "line": 90,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1210,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": 97\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1219,\r
-// CHECK-NEXT:        "line": 91,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1219,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "char *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "StringLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1219,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 3\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1219,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 3\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "char [2]"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "value": "\"a\""\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1227,\r
-// CHECK-NEXT:        "line": 92,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1227,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "StringLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1227,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 4\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1227,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 4\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int [2]"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "value": "L\"a\""\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1236,\r
-// CHECK-NEXT:        "line": 93,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 5\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1236,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 5\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "char *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "StringLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1236,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 5\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1236,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 5\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "char [2]"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "value": "u8\"a\""\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1246,\r
-// CHECK-NEXT:        "line": 94,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1246,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "unsigned int *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "StringLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1246,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 4\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1246,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 4\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "unsigned int [2]"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "value": "U\"a\""\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1255,\r
-// CHECK-NEXT:        "line": 95,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1255,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "unsigned short *"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "StringLiteral",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1255,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 4\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1255,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 4\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "unsigned short [2]"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "value": "u\"a\""\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "IntegerLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1266,\r
-// CHECK-NEXT:        "line": 97,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1266,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "1"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "IntegerLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1272,\r
-// CHECK-NEXT:        "line": 98,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 2\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1272,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 2\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "unsigned int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "1"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "IntegerLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1279,\r
-// CHECK-NEXT:        "line": 99,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1279,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "long long"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "1"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "FloatingLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1287,\r
-// CHECK-NEXT:        "line": 100,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1287,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "double"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "1"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "FloatingLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1295,\r
-// CHECK-NEXT:        "line": 101,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1295,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "float"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "1"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "FloatingLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1304,\r
-// CHECK-NEXT:        "line": 102,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 26\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1304,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 26\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "float"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "+Inf"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "FloatingLiteral",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1335,\r
-// CHECK-NEXT:        "line": 103,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1335,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 4\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "long double"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "value": "1"\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "DeclRefExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1344,\r
-// CHECK-NEXT:        "line": 104,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1344,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 3\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "referencedDecl": {\r
-// CHECK-NEXT:       "id": "0x{{.*}}",\r
-// CHECK-NEXT:       "kind": "EnumConstantDecl",\r
-// CHECK-NEXT:       "name": "One",\r
-// CHECK-NEXT:       "type": {\r
-// CHECK-NEXT:        "qualType": "int"\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      }\r
-// CHECK-NEXT:     },\r
-// CHECK-NEXT:     {\r
-// CHECK-NEXT:      "id": "0x{{.*}}",\r
-// CHECK-NEXT:      "kind": "ImplicitCastExpr",\r
-// CHECK-NEXT:      "range": {\r
-// CHECK-NEXT:       "begin": {\r
-// CHECK-NEXT:        "offset": 1354,\r
-// CHECK-NEXT:        "line": 106,\r
-// CHECK-NEXT:        "col": 3,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       },\r
-// CHECK-NEXT:       "end": {\r
-// CHECK-NEXT:        "offset": 1356,\r
-// CHECK-NEXT:        "col": 5,\r
-// CHECK-NEXT:        "tokLen": 1\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "type": {\r
-// CHECK-NEXT:       "qualType": "int"\r
-// CHECK-NEXT:      },\r
-// CHECK-NEXT:      "valueCategory": "rvalue",\r
-// CHECK-NEXT:      "castKind": "LValueToRValue",\r
-// CHECK-NEXT:      "inner": [\r
-// CHECK-NEXT:       {\r
-// CHECK-NEXT:        "id": "0x{{.*}}",\r
-// CHECK-NEXT:        "kind": "ParenExpr",\r
-// CHECK-NEXT:        "range": {\r
-// CHECK-NEXT:         "begin": {\r
-// CHECK-NEXT:          "offset": 1354,\r
-// CHECK-NEXT:          "col": 3,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         },\r
-// CHECK-NEXT:         "end": {\r
-// CHECK-NEXT:          "offset": 1356,\r
-// CHECK-NEXT:          "col": 5,\r
-// CHECK-NEXT:          "tokLen": 1\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "type": {\r
-// CHECK-NEXT:         "qualType": "int"\r
-// CHECK-NEXT:        },\r
-// CHECK-NEXT:        "valueCategory": "lvalue",\r
-// CHECK-NEXT:        "inner": [\r
-// CHECK-NEXT:         {\r
-// CHECK-NEXT:          "id": "0x{{.*}}",\r
-// CHECK-NEXT:          "kind": "DeclRefExpr",\r
-// CHECK-NEXT:          "range": {\r
-// CHECK-NEXT:           "begin": {\r
-// CHECK-NEXT:            "offset": 1355,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           },\r
-// CHECK-NEXT:           "end": {\r
-// CHECK-NEXT:            "offset": 1355,\r
-// CHECK-NEXT:            "col": 4,\r
-// CHECK-NEXT:            "tokLen": 1\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "type": {\r
-// CHECK-NEXT:           "qualType": "int"\r
-// CHECK-NEXT:          },\r
-// CHECK-NEXT:          "valueCategory": "lvalue",\r
-// CHECK-NEXT:          "referencedDecl": {\r
-// CHECK-NEXT:           "id": "0x{{.*}}",\r
-// CHECK-NEXT:           "kind": "ParmVarDecl",\r
-// CHECK-NEXT:           "name": "a",\r
-// CHECK-NEXT:           "type": {\r
-// CHECK-NEXT:            "qualType": "int"\r
-// CHECK-NEXT:           }\r
-// CHECK-NEXT:          }\r
-// CHECK-NEXT:         }\r
-// CHECK-NEXT:        ]\r
-// CHECK-NEXT:       }\r
-// CHECK-NEXT:      ]\r
-// CHECK-NEXT:     }\r
-// CHECK-NEXT:    ]\r
-// CHECK-NEXT:   }\r
-// CHECK-NEXT:  ]\r
-// CHECK-NEXT: }\r
+// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
+// using --filters=FunctionDecl
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 120,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 3,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 5
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 115,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 147,
+// CHECK-NEXT:    "line": 5,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Comma",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (void)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 132,
+// CHECK-NEXT:      "line": 3,
+// CHECK-NEXT:      "col": 18,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 147,
+// CHECK-NEXT:      "line": 5,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 137,
+// CHECK-NEXT:        "line": 4,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 143,
+// CHECK-NEXT:        "col": 9,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": ",",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "BinaryOperator",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 137,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 140,
+// CHECK-NEXT:          "col": 6,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 137,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 137,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "value": "1"
+// CHECK-NEXT:         },
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "IntegerLiteral",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 140,
+// CHECK-NEXT:            "col": 6,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 140,
+// CHECK-NEXT:            "col": 6,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "value": "2"
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 143,
+// CHECK-NEXT:          "col": 9,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 143,
+// CHECK-NEXT:          "col": 9,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "value": "3"
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 157,
+// CHECK-NEXT:   "line": 7,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 10
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 152,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 200,
+// CHECK-NEXT:    "line": 10,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Assignment",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (int)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 172,
+// CHECK-NEXT:     "line": 7,
+// CHECK-NEXT:     "col": 21,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 168,
+// CHECK-NEXT:      "col": 17,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 172,
+// CHECK-NEXT:      "col": 21,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "a",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 175,
+// CHECK-NEXT:      "col": 24,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 200,
+// CHECK-NEXT:      "line": 10,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 180,
+// CHECK-NEXT:        "line": 8,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 184,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 2
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "=",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "DeclRefExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 180,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 180,
+// CHECK-NEXT:          "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:         "name": "a",
+// CHECK-NEXT:         "type": {
+// CHECK-NEXT:          "qualType": "int"
+// CHECK-NEXT:         }
+// CHECK-NEXT:        }
+// CHECK-NEXT:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 184,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 2
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 184,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 2
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "value": "12"
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CompoundAssignOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 191,
+// CHECK-NEXT:        "line": 9,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 196,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "+=",
+// CHECK-NEXT:      "computeLHSType": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "computeResultType": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "DeclRefExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 191,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 191,
+// CHECK-NEXT:          "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:         "name": "a",
+// CHECK-NEXT:         "type": {
+// CHECK-NEXT:          "qualType": "int"
+// 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": 196,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 196,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 196,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 196,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 210,
+// CHECK-NEXT:   "line": 12,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 12
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 205,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 258,
+// CHECK-NEXT:    "line": 15,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "Conditionals",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (int)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 227,
+// CHECK-NEXT:     "line": 12,
+// CHECK-NEXT:     "col": 23,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 223,
+// CHECK-NEXT:      "col": 19,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 227,
+// CHECK-NEXT:      "col": 23,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "a",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 230,
+// CHECK-NEXT:      "col": 26,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 258,
+// CHECK-NEXT:      "line": 15,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ConditionalOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 235,
+// CHECK-NEXT:        "line": 13,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 243,
+// CHECK-NEXT:        "col": 11,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 235,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 235,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 235,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 235,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// CHECK-NEXT:           }
+// CHECK-NEXT:          }
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 239,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 239,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "value": "0"
+// CHECK-NEXT:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "IntegerLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 243,
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 243,
+// CHECK-NEXT:          "col": 11,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "value": "1"
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "BinaryConditionalOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 249,
+// CHECK-NEXT:        "line": 14,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 254,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 249,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// CHECK-NEXT:           }
+// CHECK-NEXT:          }
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "OpaqueValueExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// 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": 249,
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 249,
+// CHECK-NEXT:              "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:             "name": "a",
+// 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": "OpaqueValueExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 249,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 249,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// 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": 249,
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 249,
+// CHECK-NEXT:              "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:             "name": "a",
+// 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": "IntegerLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 254,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 254,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "value": "0"
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 268,
+// CHECK-NEXT:   "line": 17,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 15
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 263,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 686,
+// CHECK-NEXT:    "line": 49,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "BinaryOperators",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (int, int)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 288,
+// CHECK-NEXT:     "line": 17,
+// CHECK-NEXT:     "col": 26,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 284,
+// CHECK-NEXT:      "col": 22,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 288,
+// CHECK-NEXT:      "col": 26,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "a",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 295,
+// CHECK-NEXT:     "col": 33,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 291,
+// CHECK-NEXT:      "col": 29,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 295,
+// CHECK-NEXT:      "col": 33,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "b",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 298,
+// CHECK-NEXT:      "col": 36,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 686,
+// CHECK-NEXT:      "line": 49,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 327,
+// CHECK-NEXT:        "line": 19,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 332,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "||",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 327,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 327,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 327,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 327,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 332,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 332,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 332,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 332,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 338,
+// CHECK-NEXT:        "line": 20,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 343,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "&&",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 338,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 338,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 338,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 338,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 343,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 343,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 343,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 343,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 375,
+// CHECK-NEXT:        "line": 23,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 379,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "|",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 375,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 375,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 375,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 375,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 379,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 379,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 379,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 379,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 385,
+// CHECK-NEXT:        "line": 24,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 389,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "^",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 385,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 385,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 385,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 385,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 389,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 389,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 389,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 389,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 395,
+// CHECK-NEXT:        "line": 25,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 399,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "&",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 395,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 395,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 395,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 395,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 399,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 399,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 399,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 399,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 432,
+// CHECK-NEXT:        "line": 28,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 437,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "==",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 432,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 432,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 432,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 432,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 437,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 437,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 437,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 437,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 443,
+// CHECK-NEXT:        "line": 29,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 448,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "!=",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 443,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 443,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 443,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 443,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 448,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 448,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 448,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 448,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 483,
+// CHECK-NEXT:        "line": 32,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 487,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "<",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 483,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 483,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 483,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 483,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 487,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 487,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 487,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 487,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 493,
+// CHECK-NEXT:        "line": 33,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 497,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": ">",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 493,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 493,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 493,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 493,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 497,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 497,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 497,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 497,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 503,
+// CHECK-NEXT:        "line": 34,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 508,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "<=",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 503,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 503,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 503,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 503,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 508,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 508,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 508,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 508,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 514,
+// CHECK-NEXT:        "line": 35,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 519,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": ">=",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 514,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 514,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 514,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 514,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 519,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 519,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 519,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 519,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 556,
+// CHECK-NEXT:        "line": 38,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 561,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "<<",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 556,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 556,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 556,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 556,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 561,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 561,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 561,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 561,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 567,
+// CHECK-NEXT:        "line": 39,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 572,
+// CHECK-NEXT:        "col": 8,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": ">>",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 567,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 567,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 567,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 567,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 572,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 572,
+// CHECK-NEXT:          "col": 8,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 572,
+// CHECK-NEXT:            "col": 8,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 572,
+// CHECK-NEXT:            "col": 8,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 605,
+// CHECK-NEXT:        "line": 42,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 609,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "+",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 605,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 605,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 605,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 605,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 609,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 609,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 609,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 609,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 615,
+// CHECK-NEXT:        "line": 43,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 619,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "-",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 615,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 615,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 615,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 615,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 619,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 619,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 619,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 619,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 658,
+// CHECK-NEXT:        "line": 46,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 662,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "*",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 658,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 658,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 658,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 658,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 662,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 662,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 662,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 662,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 668,
+// CHECK-NEXT:        "line": 47,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 672,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "/",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 668,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 668,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 668,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 668,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 672,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 672,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 672,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 672,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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": "BinaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 678,
+// CHECK-NEXT:        "line": 48,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 682,
+// CHECK-NEXT:        "col": 7,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "opcode": "%",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 678,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 678,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 678,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 678,
+// CHECK-NEXT:            "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "int"
+// 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": 682,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 682,
+// CHECK-NEXT:          "col": 7,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 682,
+// CHECK-NEXT:            "col": 7,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 682,
+// CHECK-NEXT:            "col": 7,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// 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:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 696,
+// CHECK-NEXT:   "line": 51,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 14
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 691,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 894,
+// CHECK-NEXT:    "line": 66,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "isUsed": true,
+// CHECK-NEXT:  "name": "UnaryOperators",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (int, int *)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 715,
+// CHECK-NEXT:     "line": 51,
+// CHECK-NEXT:     "col": 25,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 711,
+// CHECK-NEXT:      "col": 21,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 715,
+// CHECK-NEXT:      "col": 25,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "a",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 723,
+// CHECK-NEXT:     "col": 33,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 718,
+// CHECK-NEXT:      "col": 28,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 723,
+// CHECK-NEXT:      "col": 33,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "b",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int *"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 726,
+// CHECK-NEXT:      "col": 36,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 894,
+// CHECK-NEXT:      "line": 66,
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CStyleCastExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 752,
+// CHECK-NEXT:        "line": 53,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 759,
+// CHECK-NEXT:        "col": 10,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "float"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "IntegralToFloating",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 759,
+// CHECK-NEXT:          "col": 10,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 759,
+// CHECK-NEXT:          "col": 10,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "castKind": "LValueToRValue",
+// CHECK-NEXT:        "isPartOfExplicitCast": true,
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "DeclRefExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 759,
+// CHECK-NEXT:            "col": 10,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 759,
+// CHECK-NEXT:            "col": 10,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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": "UnaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 812,
+// CHECK-NEXT:        "line": 57,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 813,
+// CHECK-NEXT:        "col": 4,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "isPostfix": false,
+// CHECK-NEXT:      "opcode": "-",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 813,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 813,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 813,
+// CHECK-NEXT:            "col": 4,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 813,
+// CHECK-NEXT:            "col": 4,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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": "UnaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 819,
+// CHECK-NEXT:        "line": 58,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 820,
+// CHECK-NEXT:        "col": 4,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "isPostfix": false,
+// CHECK-NEXT:      "opcode": "+",
+// CHECK-NEXT:      "canOverflow": false,
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 820,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 820,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 820,
+// CHECK-NEXT:            "col": 4,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 820,
+// CHECK-NEXT:            "col": 4,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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": "UnaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 826,
+// CHECK-NEXT:        "line": 59,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 827,
+// CHECK-NEXT:        "col": 4,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "isPostfix": false,
+// CHECK-NEXT:      "opcode": "&",
+// CHECK-NEXT:      "canOverflow": false,
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "DeclRefExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 827,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 827,
+// CHECK-NEXT:          "col": 4,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:         "name": "a",
+// CHECK-NEXT:         "type": {
+// CHECK-NEXT:          "qualType": "int"
+// 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": 833,
+// CHECK-NEXT:        "line": 60,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 834,
+// CHECK-NEXT:        "col": 4,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "LValueToRValue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "UnaryOperator",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 833,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 834,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "isPostfix": false,
+// CHECK-NEXT:        "opcode": "*",
+// CHECK-NEXT:        "canOverflow": false,
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 834,
+// CHECK-NEXT:            "col": 4,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 834,
+// CHECK-NEXT:            "col": 4,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int *"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// 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": 834,
+// CHECK-NEXT:              "col": 4,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 834,
+// CHECK-NEXT:              "col": 4,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:             "name": "b",
+// 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:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "UnaryOperator",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 840,
+// CHECK-NEXT:        "line": 61,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 841,
+// CHECK-NEXT:        "col": 4,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "isPostfix": false,
+// CHECK-NEXT:      "opcode": "!",
+// CHECK-NEXT:      "canOverflow": false,
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 841,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 841,
+// CHECK-NEXT:          "col": 4,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 841,
+// CHECK-NEXT:            "col": 4,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 841,
+// CHECK-NEXT:            "col": 4,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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": "UnaryExprOrTypeTraitExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 849,
+// CHECK-NEXT:        "line": 63,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 6
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 856,
+// CHECK-NEXT:        "col": 10,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "unsigned long"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "name": "sizeof",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "DeclRefExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 856,
+// CHECK-NEXT:          "col": 10,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 856,
+// CHECK-NEXT:          "col": 10,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:         "name": "a",
+// CHECK-NEXT:         "type": {
+// CHECK-NEXT:          "qualType": "int"
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "nonOdrUseReason": "unevaluated"
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 862,
+// CHECK-NEXT:        "line": 64,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 6
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 872,
+// CHECK-NEXT:        "col": 13,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "unsigned long"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "name": "sizeof",
+// CHECK-NEXT:      "argType": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      }
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 878,
+// CHECK-NEXT:        "line": 65,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 8
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 890,
+// CHECK-NEXT:        "col": 15,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "unsigned long"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "name": "alignof",
+// CHECK-NEXT:      "argType": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      }
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 932,
+// CHECK-NEXT:   "line": 72,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 16
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 927,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1136,
+// CHECK-NEXT:    "line": 83,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "PostfixOperators",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (int *, struct S, struct S *)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 954,
+// CHECK-NEXT:     "line": 72,
+// CHECK-NEXT:     "col": 28,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 949,
+// CHECK-NEXT:      "col": 23,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 954,
+// CHECK-NEXT:      "col": 28,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "a",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int *"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 966,
+// CHECK-NEXT:     "col": 40,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 957,
+// CHECK-NEXT:      "col": 31,
+// CHECK-NEXT:      "tokLen": 6
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 966,
+// CHECK-NEXT:      "col": 40,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "b",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "desugaredQualType": "struct S",
+// CHECK-NEXT:     "qualType": "struct S"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 979,
+// CHECK-NEXT:     "col": 53,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 969,
+// CHECK-NEXT:      "col": 43,
+// CHECK-NEXT:      "tokLen": 6
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 979,
+// CHECK-NEXT:      "col": 53,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "c",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "struct S *"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 982,
+// CHECK-NEXT:      "col": 56,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1136,
+// CHECK-NEXT:      "line": 83,
+// CHECK-NEXT:      "col": 1,
+// 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": 987,
+// CHECK-NEXT:        "line": 73,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 990,
+// CHECK-NEXT:        "col": 6,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "LValueToRValue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ArraySubscriptExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 987,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 990,
+// CHECK-NEXT:          "col": 6,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 987,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 987,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int *"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// 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": 987,
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 987,
+// CHECK-NEXT:              "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:             "name": "a",
+// CHECK-NEXT:             "type": {
+// CHECK-NEXT:              "qualType": "int *"
+// CHECK-NEXT:             }
+// CHECK-NEXT:            }
+// CHECK-NEXT:           }
+// CHECK-NEXT:          ]
+// CHECK-NEXT:         },
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "IntegerLiteral",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 989,
+// CHECK-NEXT:            "col": 5,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 989,
+// CHECK-NEXT:            "col": 5,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "value": "0"
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CallExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 996,
+// CHECK-NEXT:        "line": 74,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 14
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1016,
+// CHECK-NEXT:        "col": 23,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "void"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 996,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 14
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 996,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 14
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "void (*)(int, int *)"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "DeclRefExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 996,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 14
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 996,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 14
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "void (int, int *)"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "referencedDecl": {
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "FunctionDecl",
+// CHECK-NEXT:           "name": "UnaryOperators",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "qualType": "void (int, int *)"
+// 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": 1011,
+// CHECK-NEXT:          "col": 18,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1012,
+// CHECK-NEXT:          "col": 19,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "castKind": "LValueToRValue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "UnaryOperator",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1011,
+// CHECK-NEXT:            "col": 18,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1012,
+// 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:          "isPostfix": false,
+// CHECK-NEXT:          "opcode": "*",
+// CHECK-NEXT:          "canOverflow": false,
+// CHECK-NEXT:          "inner": [
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "ImplicitCastExpr",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1012,
+// CHECK-NEXT:              "col": 19,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1012,
+// CHECK-NEXT:              "col": 19,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int *"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// 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": 1012,
+// CHECK-NEXT:                "col": 19,
+// CHECK-NEXT:                "tokLen": 1
+// CHECK-NEXT:               },
+// CHECK-NEXT:               "end": {
+// CHECK-NEXT:                "offset": 1012,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:               "name": "a",
+// 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:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ImplicitCastExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1015,
+// CHECK-NEXT:          "col": 22,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1015,
+// CHECK-NEXT:          "col": 22,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int *"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// 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": 1015,
+// CHECK-NEXT:            "col": 22,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1015,
+// CHECK-NEXT:            "col": 22,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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": "ImplicitCastExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1024,
+// CHECK-NEXT:        "line": 76,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1026,
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "LValueToRValue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "MemberExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1024,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1026,
+// CHECK-NEXT:          "col": 5,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "name": "a",
+// CHECK-NEXT:        "isArrow": false,
+// CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "DeclRefExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1024,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1024,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "desugaredQualType": "struct S",
+// CHECK-NEXT:           "qualType": "struct S"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "referencedDecl": {
+// CHECK-NEXT:           "id": "0x{{.*}}",
+// CHECK-NEXT:           "kind": "ParmVarDecl",
+// CHECK-NEXT:           "name": "b",
+// CHECK-NEXT:           "type": {
+// CHECK-NEXT:            "desugaredQualType": "struct S",
+// CHECK-NEXT:            "qualType": "struct S"
+// CHECK-NEXT:           }
+// CHECK-NEXT:          }
+// 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": 1032,
+// CHECK-NEXT:        "line": 77,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1035,
+// CHECK-NEXT:        "col": 6,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "LValueToRValue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "MemberExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1032,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1035,
+// CHECK-NEXT:          "col": 6,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "name": "a",
+// CHECK-NEXT:        "isArrow": true,
+// CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "ImplicitCastExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1032,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1032,
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "struct S *"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// 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": 1032,
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1032,
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "struct S *"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
+// CHECK-NEXT:            "referencedDecl": {
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "ParmVarDecl",
+// CHECK-NEXT:             "name": "c",
+// CHECK-NEXT:             "type": {
+// CHECK-NEXT:              "qualType": "struct S *"
+// CHECK-NEXT:             }
+// CHECK-NEXT:            }
+// CHECK-NEXT:           }
+// CHECK-NEXT:          ]
+// 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": 1092,
+// CHECK-NEXT:        "line": 81,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1114,
+// CHECK-NEXT:        "col": 25,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "CompoundLiteralExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1092,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1114,
+// CHECK-NEXT:          "col": 25,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int [4]"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "InitListExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1101,
+// CHECK-NEXT:            "col": 12,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1114,
+// CHECK-NEXT:            "col": 25,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int [4]"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "inner": [
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "IntegerLiteral",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1102,
+// CHECK-NEXT:              "col": 13,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1102,
+// CHECK-NEXT:              "col": 13,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "value": "1"
+// CHECK-NEXT:           },
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "IntegerLiteral",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1105,
+// CHECK-NEXT:              "col": 16,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1105,
+// CHECK-NEXT:              "col": 16,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "value": "2"
+// CHECK-NEXT:           },
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "IntegerLiteral",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1108,
+// CHECK-NEXT:              "col": 19,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1108,
+// CHECK-NEXT:              "col": 19,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "value": "3"
+// CHECK-NEXT:           },
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "IntegerLiteral",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1111,
+// CHECK-NEXT:              "col": 22,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1111,
+// CHECK-NEXT:              "col": 22,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "value": "4"
+// CHECK-NEXT:           }
+// CHECK-NEXT:          ]
+// 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": 1120,
+// CHECK-NEXT:        "line": 82,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1132,
+// CHECK-NEXT:        "col": 15,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "desugaredQualType": "struct S",
+// CHECK-NEXT:       "qualType": "struct S"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "LValueToRValue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "CompoundLiteralExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1120,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1132,
+// CHECK-NEXT:          "col": 15,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "desugaredQualType": "struct S",
+// CHECK-NEXT:         "qualType": "struct S"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "InitListExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1130,
+// CHECK-NEXT:            "col": 13,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1132,
+// CHECK-NEXT:            "col": 15,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "desugaredQualType": "struct S",
+// CHECK-NEXT:           "qualType": "struct S"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue",
+// CHECK-NEXT:          "inner": [
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "IntegerLiteral",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "offset": 1131,
+// CHECK-NEXT:              "col": 14,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "offset": 1131,
+// CHECK-NEXT:              "col": 14,
+// CHECK-NEXT:              "tokLen": 1
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "rvalue",
+// CHECK-NEXT:            "value": "1"
+// CHECK-NEXT:           }
+// CHECK-NEXT:          ]
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
+// CHECK:  "kind": "FunctionDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "offset": 1165,
+// CHECK-NEXT:   "line": 87,
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "tokLen": 18
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "offset": 1160,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 4
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "offset": 1360,
+// CHECK-NEXT:    "line": 107,
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "tokLen": 1
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "PrimaryExpressions",
+// CHECK-NEXT:  "type": {
+// CHECK-NEXT:   "qualType": "void (int)"
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "ParmVarDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "offset": 1188,
+// CHECK-NEXT:     "line": 87,
+// CHECK-NEXT:     "col": 29,
+// CHECK-NEXT:     "tokLen": 1
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1184,
+// CHECK-NEXT:      "col": 25,
+// CHECK-NEXT:      "tokLen": 3
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1188,
+// CHECK-NEXT:      "col": 29,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isUsed": true,
+// CHECK-NEXT:    "name": "a",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "int"
+// CHECK-NEXT:    }
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "CompoundStmt",
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "offset": 1191,
+// CHECK-NEXT:      "col": 32,
+// CHECK-NEXT:      "tokLen": 1
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "offset": 1360,
+// CHECK-NEXT:      "line": 107,
+// CHECK-NEXT:      "col": 1,
+// 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": 1196,
+// CHECK-NEXT:        "line": 88,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1196,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// 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": 1196,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1196,
+// CHECK-NEXT:          "col": 3,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:         "name": "a",
+// CHECK-NEXT:         "type": {
+// CHECK-NEXT:          "qualType": "int"
+// CHECK-NEXT:         }
+// CHECK-NEXT:        }
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CharacterLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1202,
+// CHECK-NEXT:        "line": 89,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1202,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": 97
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CharacterLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1210,
+// CHECK-NEXT:        "line": 90,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1210,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": 97
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "ImplicitCastExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1219,
+// CHECK-NEXT:        "line": 91,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1219,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "char *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "StringLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1219,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 3
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1219,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 3
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "char [2]"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "value": "\"a\""
+// 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": 1227,
+// CHECK-NEXT:        "line": 92,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1227,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "StringLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1227,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 4
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1227,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 4
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int [2]"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "value": "L\"a\""
+// 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": 1236,
+// CHECK-NEXT:        "line": 93,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 5
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1236,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 5
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "char *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "StringLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1236,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 5
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1236,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 5
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "char [2]"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "value": "u8\"a\""
+// 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": 1246,
+// CHECK-NEXT:        "line": 94,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1246,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "unsigned int *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "StringLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1246,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 4
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1246,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 4
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "unsigned int [2]"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "value": "U\"a\""
+// 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": 1255,
+// CHECK-NEXT:        "line": 95,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1255,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "unsigned short *"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "StringLiteral",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1255,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 4
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1255,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 4
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "unsigned short [2]"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "value": "u\"a\""
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "IntegerLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1266,
+// CHECK-NEXT:        "line": 97,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1266,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "1"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "IntegerLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1272,
+// CHECK-NEXT:        "line": 98,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 2
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1272,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 2
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "unsigned int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "1"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "IntegerLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1279,
+// CHECK-NEXT:        "line": 99,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1279,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "long long"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "1"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FloatingLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1287,
+// CHECK-NEXT:        "line": 100,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1287,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "double"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "1"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FloatingLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1295,
+// CHECK-NEXT:        "line": 101,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1295,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "float"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "1"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FloatingLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1304,
+// CHECK-NEXT:        "line": 102,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 26
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1304,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 26
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "float"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "+Inf"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "FloatingLiteral",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1335,
+// CHECK-NEXT:        "line": 103,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1335,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 4
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "long double"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "value": "1"
+// CHECK-NEXT:     },
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "DeclRefExpr",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "offset": 1344,
+// CHECK-NEXT:        "line": 104,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1344,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 3
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "referencedDecl": {
+// CHECK-NEXT:       "id": "0x{{.*}}",
+// CHECK-NEXT:       "kind": "EnumConstantDecl",
+// CHECK-NEXT:       "name": "One",
+// CHECK-NEXT:       "type": {
+// CHECK-NEXT:        "qualType": "int"
+// 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": 1354,
+// CHECK-NEXT:        "line": 106,
+// CHECK-NEXT:        "col": 3,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "offset": 1356,
+// CHECK-NEXT:        "col": 5,
+// CHECK-NEXT:        "tokLen": 1
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "type": {
+// CHECK-NEXT:       "qualType": "int"
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "valueCategory": "rvalue",
+// CHECK-NEXT:      "castKind": "LValueToRValue",
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "ParenExpr",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "offset": 1354,
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "offset": 1356,
+// CHECK-NEXT:          "col": 5,
+// CHECK-NEXT:          "tokLen": 1
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "int"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "lvalue",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "DeclRefExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "offset": 1355,
+// CHECK-NEXT:            "col": 4,
+// CHECK-NEXT:            "tokLen": 1
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "offset": 1355,
+// CHECK-NEXT:            "col": 4,
+// 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": "ParmVarDecl",
+// CHECK-NEXT:           "name": "a",
+// 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:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }