-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s
-
-void Comma(void) {
- 1, 2, 3;
-}
-
-void Assignment(int a) {
- a = 12;
- a += a;
-}
-
-void Conditionals(int a) {
- a ? 0 : 1;
- a ?: 0;
-}
-
-void BinaryOperators(int a, int b) {
- // Logical operators
- a || b;
- a && b;
-
- // Bitwise operators
- a | b;
- a ^ b;
- a & b;
-
- // Equality operators
- a == b;
- a != b;
-
- // Relational operators
- a < b;
- a > b;
- a <= b;
- a >= b;
-
- // Bit shifting operators
- a << b;
- a >> b;
-
- // Additive operators
- a + b;
- a - b;
-
- // Multiplicative operators
- a * b;
- a / b;
- a % b;
-}
-
-void UnaryOperators(int a, int *b) {
- // Cast operators
- (float)a;
-
- // ++, --, and ~ are covered elsewhere.
-
- -a;
- +a;
- &a;
- *b;
- !a;
-
- sizeof a;
- sizeof(int);
- _Alignof(int);
-}
-
-struct S {
- int a;
-};
-
-void PostfixOperators(int *a, struct S b, struct S *c) {
- a[0];
- UnaryOperators(*a, a);
-
- b.a;
- c->a;
-
- // Postfix ++ and -- are covered elsewhere.
-
- (int [4]){1, 2, 3, 4, };
- (struct S){1};
-}
-
-enum E { One };
-
-void PrimaryExpressions(int a) {
- a;
- 'a';
- L'a';
- "a";
- L"a";
- u8"a";
- U"a";
- u"a";
-
- 1;
- 1u;
- 1ll;
- 1.0;
- 1.0f;
- 1.0l;
- One;
-
- (a);
-}
-
-// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
-// using --filters=FunctionDecl
-
-
-// CHECK: "kind": "FunctionDecl",
-// CHECK-NEXT: "loc": {
-// 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: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 3,
-// CHECK-NEXT: "col": 18,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 4,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 6,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 9,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 7,
-// CHECK-NEXT: "col": 6,
-// CHECK-NEXT: "tokLen": 10
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 7,
-// CHECK-NEXT: "col": 21,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 17,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 24,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 8,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 2
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 9,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 12,
-// CHECK-NEXT: "col": 6,
-// CHECK-NEXT: "tokLen": 12
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 12,
-// CHECK-NEXT: "col": 23,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 19,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 26,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 13,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 11,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 14,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 17,
-// CHECK-NEXT: "col": 6,
-// CHECK-NEXT: "tokLen": 15
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 17,
-// CHECK-NEXT: "col": 26,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 22,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 33,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 29,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 36,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 19,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 20,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 23,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 24,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 25,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 28,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 29,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 32,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 33,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 34,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 35,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 38,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 39,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 8,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 42,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 43,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 46,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 47,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 48,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 7,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 51,
-// CHECK-NEXT: "col": 6,
-// CHECK-NEXT: "tokLen": 14
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 51,
-// CHECK-NEXT: "col": 25,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 21,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 33,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 28,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 36,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 53,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 10,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 10,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 57,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 58,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 59,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 60,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 61,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 63,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 6
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 10,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 64,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 6
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 65,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 8
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 72,
-// CHECK-NEXT: "col": 6,
-// CHECK-NEXT: "tokLen": 16
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 72,
-// CHECK-NEXT: "col": 28,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 23,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 40,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 31,
-// CHECK-NEXT: "tokLen": 6
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 53,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 43,
-// CHECK-NEXT: "tokLen": 6
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 56,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 73,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 5,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 74,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 14
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 14
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 14
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 18,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 18,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 19,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 19,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 22,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 22,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 76,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 77,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 81,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 12,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 13,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 16,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 19,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 22,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 82,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 13,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 14,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 87,
-// CHECK-NEXT: "col": 6,
-// CHECK-NEXT: "tokLen": 18
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 1,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// CHECK-NEXT: "line": 106,
-// 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: "line": 87,
-// CHECK-NEXT: "col": 29,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "range": {
-// CHECK-NEXT: "begin": {
-// CHECK-NEXT: "col": 25,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 32,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// CHECK-NEXT: "line": 106,
-// 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: "line": 88,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 89,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 90,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 91,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 92,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 93,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 5
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 5
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 94,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 95,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 97,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 98,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 2
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 99,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 100,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 101,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 102,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 4
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 103,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 3
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "line": 105,
-// CHECK-NEXT: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 3,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: "col": 4,
-// CHECK-NEXT: "tokLen": 1
-// CHECK-NEXT: },
-// CHECK-NEXT: "end": {
-// 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: }
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s\r
+\r
+void Comma(void) {\r
+ 1, 2, 3;\r
+}\r
+\r
+void Assignment(int a) {\r
+ a = 12;\r
+ a += a;\r
+}\r
+\r
+void Conditionals(int a) {\r
+ a ? 0 : 1;\r
+ a ?: 0;\r
+}\r
+\r
+void BinaryOperators(int a, int b) {\r
+ // Logical operators\r
+ a || b;\r
+ a && b;\r
+\r
+ // Bitwise operators\r
+ a | b;\r
+ a ^ b;\r
+ a & b;\r
+\r
+ // Equality operators\r
+ a == b;\r
+ a != b;\r
+\r
+ // Relational operators\r
+ a < b;\r
+ a > b;\r
+ a <= b;\r
+ a >= b;\r
+\r
+ // Bit shifting operators\r
+ a << b;\r
+ a >> b;\r
+\r
+ // Additive operators\r
+ a + b;\r
+ a - b;\r
+\r
+ // Multiplicative operators\r
+ a * b;\r
+ a / b;\r
+ a % b;\r
+}\r
+\r
+void UnaryOperators(int a, int *b) {\r
+ // Cast operators\r
+ (float)a;\r
+\r
+ // ++, --, and ~ are covered elsewhere.\r
+\r
+ -a;\r
+ +a;\r
+ &a;\r
+ *b;\r
+ !a;\r
+\r
+ sizeof a;\r
+ sizeof(int);\r
+ _Alignof(int);\r
+}\r
+\r
+struct S {\r
+ int a;\r
+};\r
+\r
+void PostfixOperators(int *a, struct S b, struct S *c) {\r
+ a[0];\r
+ UnaryOperators(*a, a);\r
+\r
+ b.a;\r
+ c->a;\r
+\r
+ // Postfix ++ and -- are covered elsewhere.\r
+\r
+ (int [4]){1, 2, 3, 4, };\r
+ (struct S){1};\r
+}\r
+\r
+enum E { One };\r
+\r
+void PrimaryExpressions(int a) {\r
+ a;\r
+ 'a';\r
+ L'a';\r
+ "a";\r
+ L"a";\r
+ u8"a";\r
+ U"a";\r
+ u"a";\r
+\r
+ 1;\r
+ 1u;\r
+ 1ll;\r
+ 1.0;\r
+ 1.0f;\r
+ 0xFp100000000000000000000F;\r
+ 1.0l;\r
+ One;\r
+\r
+ (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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 3,\r
+// CHECK-NEXT: "col": 18,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 4,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 6,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 9,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 17,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 24,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 8,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 2\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 9,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 19,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 26,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 13,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 11,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 14,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 22,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 33,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "range": {\r
+// CHECK-NEXT: "begin": {\r
+// CHECK-NEXT: "col": 29,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 36,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 19,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 20,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 23,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 24,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 25,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 28,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 29,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 32,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 33,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 34,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 35,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 38,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 39,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 8,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 42,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 43,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 46,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 47,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 48,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 7,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 21,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 33,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "range": {\r
+// CHECK-NEXT: "begin": {\r
+// CHECK-NEXT: "col": 28,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 36,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 53,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 10,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 10,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 57,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 58,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 59,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 60,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 61,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 63,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 6\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 10,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 64,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 6\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 65,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 8\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 23,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 40,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "range": {\r
+// CHECK-NEXT: "begin": {\r
+// CHECK-NEXT: "col": 31,\r
+// CHECK-NEXT: "tokLen": 6\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 53,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "range": {\r
+// CHECK-NEXT: "begin": {\r
+// CHECK-NEXT: "col": 43,\r
+// CHECK-NEXT: "tokLen": 6\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 56,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 73,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 5,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 74,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 14\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 14\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 14\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 18,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 18,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 19,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 19,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 22,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 22,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 76,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 77,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 81,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 12,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 13,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 16,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 19,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 22,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 82,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 13,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 14,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 1,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "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: "col": 25,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 32,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 88,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 89,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 90,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 91,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 92,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 93,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 5\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 5\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 94,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 95,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 97,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 98,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 2\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 99,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 100,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 101,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 102,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 26\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 103,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 4\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 104,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 3\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "line": 106,\r
+// CHECK-NEXT: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 3,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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: "col": 4,\r
+// CHECK-NEXT: "tokLen": 1\r
+// CHECK-NEXT: },\r
+// CHECK-NEXT: "end": {\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