| // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s |
| |
| struct A { |
| int arr[1]; |
| }; |
| |
| struct B { |
| const A &a = A{{0}}; |
| }; |
| |
| void test() { |
| B b{}; |
| } |
| |
| // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py |
| |
| |
| // CHECK-NOT: {{^}}Dumping |
| // CHECK: "kind": "TranslationUnitDecl", |
| // CHECK-NEXT: "loc": {}, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": {}, |
| // CHECK-NEXT: "end": {} |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "TypedefDecl", |
| // CHECK-NEXT: "loc": {}, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": {}, |
| // CHECK-NEXT: "end": {} |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "__int128_t", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__int128" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "BuiltinType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__int128" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "TypedefDecl", |
| // CHECK-NEXT: "loc": {}, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": {}, |
| // CHECK-NEXT: "end": {} |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "__uint128_t", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "unsigned __int128" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "BuiltinType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "unsigned __int128" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "TypedefDecl", |
| // CHECK-NEXT: "loc": {}, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": {}, |
| // CHECK-NEXT: "end": {} |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "__NSConstantString", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__NSConstantString_tag" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "RecordType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__NSConstantString_tag" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "decl": { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXRecordDecl", |
| // CHECK-NEXT: "name": "__NSConstantString_tag" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "TypedefDecl", |
| // CHECK-NEXT: "loc": {}, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": {}, |
| // CHECK-NEXT: "end": {} |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "__builtin_ms_va_list", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "char *" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "PointerType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "char *" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "BuiltinType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "char" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "TypedefDecl", |
| // CHECK-NEXT: "loc": {}, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": {}, |
| // CHECK-NEXT: "end": {} |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "__builtin_va_list", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__va_list_tag[1]" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "ConstantArrayType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__va_list_tag[1]" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "size": 1, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "RecordType", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "__va_list_tag" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "decl": { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXRecordDecl", |
| // CHECK-NEXT: "name": "__va_list_tag" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXRecordDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 99, |
| // CHECK-NEXT: "file": "{{.*}}", |
| // CHECK-NEXT: "line": 3, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 92, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 6 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 117, |
| // CHECK-NEXT: "line": 5, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isReferenced": true, |
| // CHECK-NEXT: "name": "A", |
| // CHECK-NEXT: "tagUsed": "struct", |
| // CHECK-NEXT: "completeDefinition": true, |
| // CHECK-NEXT: "definitionData": { |
| // CHECK-NEXT: "canPassInRegisters": true, |
| // CHECK-NEXT: "copyAssign": { |
| // CHECK-NEXT: "hasConstParam": true, |
| // CHECK-NEXT: "implicitHasConstParam": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "copyCtor": { |
| // CHECK-NEXT: "hasConstParam": true, |
| // CHECK-NEXT: "implicitHasConstParam": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "defaultCtor": { |
| // CHECK-NEXT: "exists": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "dtor": { |
| // CHECK-NEXT: "irrelevant": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isAggregate": true, |
| // CHECK-NEXT: "isLiteral": true, |
| // CHECK-NEXT: "isPOD": true, |
| // CHECK-NEXT: "isStandardLayout": true, |
| // CHECK-NEXT: "isTrivial": true, |
| // CHECK-NEXT: "isTriviallyCopyable": true, |
| // CHECK-NEXT: "moveAssign": { |
| // CHECK-NEXT: "exists": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "moveCtor": { |
| // CHECK-NEXT: "exists": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXRecordDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 99, |
| // CHECK-NEXT: "line": 3, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 92, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 6 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 99, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "A", |
| // CHECK-NEXT: "tagUsed": "struct" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "FieldDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 109, |
| // CHECK-NEXT: "line": 4, |
| // CHECK-NEXT: "col": 7, |
| // CHECK-NEXT: "tokLen": 3 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 105, |
| // CHECK-NEXT: "col": 3, |
| // CHECK-NEXT: "tokLen": 3 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 114, |
| // CHECK-NEXT: "col": 12, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "name": "arr", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "int[1]" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXDestructorDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 99, |
| // CHECK-NEXT: "line": 3, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 99, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 99, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "isReferenced": true, |
| // CHECK-NEXT: "name": "~A", |
| // CHECK-NEXT: "mangledName": "_ZN1AD1Ev", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "void () noexcept" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inline": true, |
| // CHECK-NEXT: "explicitlyDefaulted": "default" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXRecordDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 128, |
| // CHECK-NEXT: "line": 7, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 121, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 6 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 155, |
| // CHECK-NEXT: "line": 9, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isReferenced": true, |
| // CHECK-NEXT: "name": "B", |
| // CHECK-NEXT: "tagUsed": "struct", |
| // CHECK-NEXT: "completeDefinition": true, |
| // CHECK-NEXT: "definitionData": { |
| // CHECK-NEXT: "canConstDefaultInit": true, |
| // CHECK-NEXT: "canPassInRegisters": true, |
| // CHECK-NEXT: "copyAssign": { |
| // CHECK-NEXT: "hasConstParam": true, |
| // CHECK-NEXT: "implicitHasConstParam": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "copyCtor": { |
| // CHECK-NEXT: "hasConstParam": true, |
| // CHECK-NEXT: "implicitHasConstParam": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "defaultCtor": { |
| // CHECK-NEXT: "defaultedIsConstexpr": true, |
| // CHECK-NEXT: "exists": true, |
| // CHECK-NEXT: "isConstexpr": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "nonTrivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "dtor": { |
| // CHECK-NEXT: "irrelevant": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, |
| // CHECK-NEXT: "isAggregate": true, |
| // CHECK-NEXT: "isLiteral": true, |
| // CHECK-NEXT: "isTriviallyCopyable": true, |
| // CHECK-NEXT: "moveAssign": { |
| // CHECK-NEXT: "exists": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "moveCtor": { |
| // CHECK-NEXT: "exists": true, |
| // CHECK-NEXT: "needsImplicit": true, |
| // CHECK-NEXT: "simple": true, |
| // CHECK-NEXT: "trivial": true |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXRecordDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 128, |
| // CHECK-NEXT: "line": 7, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 121, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 6 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 128, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "isImplicit": true, |
| // CHECK-NEXT: "name": "B", |
| // CHECK-NEXT: "tagUsed": "struct" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "FieldDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 143, |
| // CHECK-NEXT: "line": 8, |
| // CHECK-NEXT: "col": 12, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 134, |
| // CHECK-NEXT: "col": 3, |
| // CHECK-NEXT: "tokLen": 5 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "name": "a", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A &" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "hasInClassInitializer": true, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "ExprWithCleanups", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "lvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "MaterializeTemporaryExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "lvalue", |
| // CHECK-NEXT: "extendingDecl": { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "FieldDecl", |
| // CHECK-NEXT: "name": "a", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A &" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "storageDuration": "automatic", |
| // CHECK-NEXT: "boundToLValueRef": true, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "ImplicitCastExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "castKind": "NoOp", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXFunctionalCastExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "castKind": "NoOp", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "InitListExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 148, |
| // CHECK-NEXT: "col": 17, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "InitListExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 149, |
| // CHECK-NEXT: "col": 18, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 151, |
| // CHECK-NEXT: "col": 20, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "int[1]" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "IntegerLiteral", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 150, |
| // CHECK-NEXT: "col": 19, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 150, |
| // CHECK-NEXT: "col": 19, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "int" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "value": "0" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // 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": "FunctionDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 164, |
| // CHECK-NEXT: "line": 11, |
| // CHECK-NEXT: "col": 6, |
| // CHECK-NEXT: "tokLen": 4 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 159, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 4 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 182, |
| // CHECK-NEXT: "line": 13, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "name": "test", |
| // CHECK-NEXT: "mangledName": "_Z4testv", |
| // 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: "offset": 171, |
| // CHECK-NEXT: "line": 11, |
| // CHECK-NEXT: "col": 13, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 182, |
| // CHECK-NEXT: "line": 13, |
| // CHECK-NEXT: "col": 1, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "DeclStmt", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 175, |
| // CHECK-NEXT: "line": 12, |
| // CHECK-NEXT: "col": 3, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 180, |
| // CHECK-NEXT: "col": 8, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "VarDecl", |
| // CHECK-NEXT: "loc": { |
| // CHECK-NEXT: "offset": 177, |
| // CHECK-NEXT: "col": 5, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 175, |
| // CHECK-NEXT: "col": 3, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 179, |
| // CHECK-NEXT: "col": 7, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "name": "b", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "B" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "init": "list", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "InitListExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 178, |
| // CHECK-NEXT: "col": 6, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 179, |
| // CHECK-NEXT: "col": 7, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "B" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXDefaultInitExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 179, |
| // CHECK-NEXT: "col": 7, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 179, |
| // CHECK-NEXT: "col": 7, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "lvalue", |
| // CHECK-NEXT: "hasRewrittenInit": true, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "ExprWithCleanups", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "line": 8, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "lvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "MaterializeTemporaryExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "lvalue", |
| // CHECK-NEXT: "extendingDecl": { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "FieldDecl", |
| // CHECK-NEXT: "name": "a", |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A &" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "storageDuration": "automatic", |
| // CHECK-NEXT: "boundToLValueRef": true, |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "ImplicitCastExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "const A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "castKind": "NoOp", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "CXXFunctionalCastExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 147, |
| // CHECK-NEXT: "col": 16, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "castKind": "NoOp", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "InitListExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 148, |
| // CHECK-NEXT: "col": 17, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 152, |
| // CHECK-NEXT: "col": 21, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "A" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "InitListExpr", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 149, |
| // CHECK-NEXT: "col": 18, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 151, |
| // CHECK-NEXT: "col": 20, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "int[1]" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "inner": [ |
| // CHECK-NEXT: { |
| // CHECK-NEXT: "id": "0x{{.*}}", |
| // CHECK-NEXT: "kind": "IntegerLiteral", |
| // CHECK-NEXT: "range": { |
| // CHECK-NEXT: "begin": { |
| // CHECK-NEXT: "offset": 150, |
| // CHECK-NEXT: "col": 19, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "end": { |
| // CHECK-NEXT: "offset": 150, |
| // CHECK-NEXT: "col": 19, |
| // CHECK-NEXT: "tokLen": 1 |
| // CHECK-NEXT: } |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "type": { |
| // CHECK-NEXT: "qualType": "int" |
| // CHECK-NEXT: }, |
| // CHECK-NEXT: "valueCategory": "prvalue", |
| // CHECK-NEXT: "value": "0" |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: } |