r361764 - Add test cases for dumping AST expression nodes to JSON; NFC.
Richard Smith via cfe-commits
cfe-commits at lists.llvm.org
Sat Jun 1 00:48:09 PDT 2019
On Sat, 1 Jun 2019, 00:39 Aaron Ballman via cfe-commits, <
cfe-commits at lists.llvm.org> wrote:
> Gladly, this was already generated by script which I planned to upstream
> once we finished working the kinks out of it. However, I'm currently out on
> vacation and don't have that script with me. Can this wait until I return?
>
Sure, no rush.
~Aaron
>
> On Fri, May 31, 2019, 11:12 PM Richard Smith <richard at metafoo.co.uk>
> wrote:
>
>> It's only been a few days, and this new test already seems to be creating
>> a significant maintenance burden.
>>
>> Do you think you could provide a script to regenerate the test
>> expectations, to reduce the burden here?
>>
>> On Mon, 27 May 2019 at 07:09, Aaron Ballman via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> Author: aaronballman
>>> Date: Mon May 27 07:12:48 2019
>>> New Revision: 361764
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=361764&view=rev
>>> Log:
>>> Add test cases for dumping AST expression nodes to JSON; NFC.
>>>
>>> Added:
>>> cfe/trunk/test/AST/ast-dump-expr-json.cpp
>>>
>>> Added: cfe/trunk/test/AST/ast-dump-expr-json.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-expr-json.cpp?rev=361764&view=auto
>>>
>>> ==============================================================================
>>> --- cfe/trunk/test/AST/ast-dump-expr-json.cpp (added)
>>> +++ cfe/trunk/test/AST/ast-dump-expr-json.cpp Mon May 27 07:12:48 2019
>>> @@ -0,0 +1,8992 @@
>>> +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value
>>> -fcxx-exceptions -std=gnu++17 -ast-dump=json -ast-dump-filter Test %s |
>>> FileCheck %s
>>> +
>>> +namespace std {
>>> +using size_t = decltype(sizeof(0));
>>> +
>>> +class type_info {
>>> +public:
>>> + virtual ~type_info();
>>> + bool operator==(const type_info& rhs) const noexcept;
>>> + bool operator!=(const type_info& rhs) const noexcept;
>>> + type_info(const type_info& rhs) = delete; // cannot be copied
>>> + type_info& operator=(const type_info& rhs) = delete; // cannot be
>>> copied
>>> +};
>>> +
>>> +class bad_typeid {
>>> +public:
>>> + bad_typeid() noexcept;
>>> + bad_typeid(const bad_typeid&) noexcept;
>>> + virtual ~bad_typeid();
>>> + bad_typeid& operator=(const bad_typeid&) noexcept;
>>> + const char* what() const noexcept;
>>> +};
>>> +} // namespace std
>>> +void *operator new(std::size_t, void *ptr);
>>> +
>>> +struct S {
>>> + virtual ~S() = default;
>>> +
>>> + void func(int);
>>> + template <typename Ty>
>>> + Ty foo();
>>> +
>>> + int i;
>>> +};
>>> +
>>> +struct T : S {};
>>> +
>>> +template <typename>
>>> +struct U {};
>>> +
>>> +void TestThrow() {
>>> + throw 12;
>>> + throw;
>>> +}
>>> +
>>> +void TestPointerToMember(S obj1, S *obj2, int S::* data, void
>>> (S::*call)(int)) {
>>> + obj1.*data;
>>> + obj2->*data;
>>> + (obj1.*call)(12);
>>> + (obj2->*call)(12);
>>> +}
>>> +
>>> +void TestCasting(const S *s) {
>>> + const_cast<S *>(s);
>>> + static_cast<const T *>(s);
>>> + dynamic_cast<const T *>(s);
>>> + reinterpret_cast<const int *>(s);
>>> +}
>>> +
>>> +template <typename... Ts>
>>> +void TestUnaryExpressions(int *p) {
>>> + sizeof...(Ts);
>>> + noexcept(p - p);
>>> +
>>> + ::new int;
>>> + new (int);
>>> + new int{12};
>>> + new int[2];
>>> + new int[2]{1, 2};
>>> + new (p) int;
>>> + new (p) int{12};
>>> +
>>> + ::delete p;
>>> + delete [] p;
>>> +}
>>> +
>>> +void TestPostfixExpressions(S a, S *p, U<int> *r) {
>>> + a.func(0);
>>> + p->func(0);
>>> + p->template foo<int>();
>>> + a.template foo<float>();
>>> + p->~S();
>>> + a.~S();
>>> + a.~decltype(a)();
>>> + p->::S::~S();
>>> + r->template U<int>::~U();
>>> + typeid(a);
>>> + typeid(S);
>>> + typeid(const volatile S);
>>> +}
>>> +
>>> +template <typename... Ts>
>>> +void TestPrimaryExpressions(Ts... a) {
>>> + struct V {
>>> + void f() {
>>> + this;
>>> +
>>> + [this]{};
>>> + [*this]{};
>>> + }
>>> + };
>>> +
>>> + int b, c;
>>> +
>>> + [](){};
>>> + [](int a, ...){};
>>> + [a...]{};
>>> + [=]{};
>>> + [=] { return b; };
>>> + [&]{};
>>> + [&] { return c; };
>>> + [b, &c]{ return b + c; };
>>> + [a..., x = 12]{};
>>> + []() constexpr {};
>>> + []() mutable {};
>>> + []() noexcept {};
>>> + []() -> int { return 0; };
>>> +
>>> + (a + ...);
>>> + (... + a);
>>> + (a + ... + b);
>>> +}
>>> +
>>> +namespace NS {
>>> +struct X {};
>>> +void f(X);
>>> +void y(...);
>>> +} // namespace NS
>>> +
>>> +void TestADLCall() {
>>> + NS::X x;
>>> + f(x);
>>> + y(x);
>>> +}
>>> +
>>> +void TestNonADLCall() {
>>> + NS::X x;
>>> + NS::f(x);
>>> +}
>>> +
>>> +void TestNonADLCall2() {
>>> + NS::X x;
>>> + using NS::f;
>>> + f(x);
>>> + y(x);
>>> +}
>>> +
>>> +namespace test_adl_call_three {
>>> +using namespace NS;
>>> +void TestNonADLCall3() {
>>> + X x;
>>> + f(x);
>>> +}
>>> +} // namespace test_adl_call_three
>>> +
>>> +
>>> +// CHECK: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 6,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 41
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 41
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 44
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "name": "TestThrow",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void ()"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CompoundStmt",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 18,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 41
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 44
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXThrowExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 42
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 42
>>> +// 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": "IntegerLiteral",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 42
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 42
>>> +// 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": "CXXThrowExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 43
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 43
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +
>>> +
>>> +// CHECK: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 6,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 51
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "name": "TestPointerToMember",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S, S *, int S::*, void (S::*)(int))"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 28,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 26,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 28,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isUsed": true,
>>> +// CHECK-NEXT: "name": "obj1",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 37,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 34,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 37,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isUsed": true,
>>> +// CHECK-NEXT: "name": "obj2",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S *"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 52,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 43,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 52,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isUsed": true,
>>> +// CHECK-NEXT: "name": "data",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int S::*"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 68,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 58,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 77,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isUsed": true,
>>> +// CHECK-NEXT: "name": "call",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(int)"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CompoundStmt",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 80,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 46
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 51
>>> +// 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: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// 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: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "obj1",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S"
>>> +// 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": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int 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": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 47
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int S::*"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "data",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int S::*"
>>> +// 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: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// 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: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "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: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "obj2",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S *"
>>> +// 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": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int 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": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 48
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int S::*"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "data",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int S::*"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXMemberCallExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 18,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// 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": "ParenExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 14,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "<bound member function type>"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "BinaryOperator",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "<bound member function type>"
>>> +// 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": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "obj1",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S"
>>> +// 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": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(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": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(int)"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "call",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(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": "IntegerLiteral",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 49
>>> +// 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": "CXXMemberCallExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 19,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// 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": "ParenExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 15,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "<bound member function type>"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "BinaryOperator",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "<bound member function type>"
>>> +// 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": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "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": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 4,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "obj2",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S *"
>>> +// 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": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(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": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(int)"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "call",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (S::*)(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": "IntegerLiteral",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 17,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 17,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 50
>>> +// 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: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +
>>> +
>>> +// CHECK: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 6,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 53
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 53
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 58
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "name": "TestCasting",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void (const S *)"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 53
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 18,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 53
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 53
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isUsed": true,
>>> +// CHECK-NEXT: "name": "s",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CompoundStmt",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 30,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 53
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 58
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXConstCastExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 54
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 20,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 54
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "castKind": "NoOp",
>>> +// 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: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 54
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 19,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 54
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// 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": 19,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 54
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 19,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 54
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "s",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXStaticCastExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 55
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 55
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const T *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "castKind": "BaseToDerived",
>>> +// CHECK-NEXT: "path": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "name": "S"
>>> +// 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: "col": 26,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 55
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 26,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 55
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// 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": 26,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 55
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 26,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 55
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "s",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXDynamicCastExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 56
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 28,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 56
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const T *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "castKind": "Dynamic",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ImplicitCastExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 56
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 56
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// 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": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 56
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 56
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "s",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXReinterpretCastExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 57
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 34,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 57
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const int *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "castKind": "BitCast",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ImplicitCastExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 33,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 57
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 33,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 57
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// 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": 33,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 57
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 33,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 57
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "lvalue",
>>> +// CHECK-NEXT: "referencedDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "ParmVarDecl",
>>> +// CHECK-NEXT: "name": "s",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "const S *"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ]
>>> +// CHECK-NEXT: }
>>> +
>>> +
>>> +// CHECK: "kind": "FunctionTemplateDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 6,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 60
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 75
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "name": "TestUnaryExpressions",
>>> +// CHECK-NEXT: "templateParams": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "TemplateTypeParmDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 23,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 60
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 60
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 23,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 60
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isReferenced": true,
>>> +// CHECK-NEXT: "name": "Ts",
>>> +// CHECK-NEXT: "tagUsed": "typename",
>>> +// CHECK-NEXT: "depth": 0,
>>> +// CHECK-NEXT: "index": 0,
>>> +// CHECK-NEXT: "isParameterPack": true
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: ],
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "loc": {
>>> +// CHECK-NEXT: "col": 6,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 75
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "name": "TestUnaryExpressions",
>>> +// 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: "col": 32,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 27,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 32,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "isReferenced": true,
>>> +// CHECK-NEXT: "name": "p",
>>> +// 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": 35,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 61
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 1,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 75
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "SizeOfPackExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 62
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 15,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 62
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "unsigned long"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXNoexceptExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 17,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "bool"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "BinaryOperator",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 12,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "long"
>>> +// 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": 12,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 12,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// 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": 12,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 12,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// 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": "p",
>>> +// 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": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// 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": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 16,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 63
>>> +// 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": "p",
>>> +// 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": "CXXNewExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 65
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 9,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 65
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "isGlobal": true,
>>> +// CHECK-NEXT: "operatorNewDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "name": "operator new",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void *(unsigned long)"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXNewExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 66
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 66
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "operatorNewDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "name": "operator new",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void *(unsigned long)"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXNewExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 67
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 13,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 67
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "initStyle": "list",
>>> +// CHECK-NEXT: "operatorNewDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "name": "operator new",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void *(unsigned long)"
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "InitListExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 10,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 67
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 13,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 67
>>> +// 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": "IntegerLiteral",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 67
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 67
>>> +// 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: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXNewExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 68
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 12,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 68
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "isArray": true,
>>> +// CHECK-NEXT: "operatorNewDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "name": "operator new[]",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void *(unsigned long)"
>>> +// 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: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 68
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 68
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "unsigned long"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "castKind": "IntegralCast",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "IntegerLiteral",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 68
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 68
>>> +// 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: },
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "CXXNewExpr",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 3,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 69
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 18,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 69
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "int *"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "isArray": true,
>>> +// CHECK-NEXT: "initStyle": "list",
>>> +// CHECK-NEXT: "operatorNewDecl": {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "FunctionDecl",
>>> +// CHECK-NEXT: "name": "operator new[]",
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "void *(unsigned long)"
>>> +// 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: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 69
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 69
>>> +// CHECK-NEXT: }
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "type": {
>>> +// CHECK-NEXT: "qualType": "unsigned long"
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "valueCategory": "rvalue",
>>> +// CHECK-NEXT: "castKind": "IntegralCast",
>>> +// CHECK-NEXT: "inner": [
>>> +// CHECK-NEXT: {
>>> +// CHECK-NEXT: "id": "0x{{.*}}",
>>> +// CHECK-NEXT: "kind": "IntegerLiteral",
>>> +// CHECK-NEXT: "range": {
>>> +// CHECK-NEXT: "begin": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 69
>>> +// CHECK-NEXT: },
>>> +// CHECK-NEXT: "end": {
>>> +// CHECK-NEXT: "col": 11,
>>> +// CHECK-NEXT: "file": "{{.*}}",
>>> +// CHECK-NEXT: "line": 69
>>> +// 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:
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190601/2770a4af/attachment-0001.html>
More information about the cfe-commits
mailing list