brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.9 KiB · 0601732 Raw
323 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s2 3namespace Test {4 5namespace NS {6void Function();7}8void NS::Function() {}9 10struct S {11  void Method();12};13void S::Method() {}14 15} // namespace Test16 17// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py18 19// CHECK-NOT: {{^}}Dumping20// CHECK:  "kind": "NamespaceDecl",21// CHECK-NEXT:  "loc": {22// CHECK-NEXT:   "offset": {{[0-9]+}},23// CHECK-NEXT:   "file": "{{.*}}",24// CHECK-NEXT:   "line": 3,25// CHECK-NEXT:   "col": 11,26// CHECK-NEXT:   "tokLen": 427// CHECK-NEXT:  },28// CHECK-NEXT:  "range": {29// CHECK-NEXT:   "begin": {30// CHECK-NEXT:    "offset": {{[0-9]+}},31// CHECK-NEXT:    "col": 1,32// CHECK-NEXT:    "tokLen": 933// CHECK-NEXT:   },34// CHECK-NEXT:   "end": {35// CHECK-NEXT:    "offset": {{[0-9]+}},36// CHECK-NEXT:    "line": 15,37// CHECK-NEXT:    "col": 1,38// CHECK-NEXT:    "tokLen": 139// CHECK-NEXT:   }40// CHECK-NEXT:  },41// CHECK-NEXT:  "name": "Test",42// CHECK-NEXT:  "inner": [43// CHECK-NEXT:   {44// CHECK-NEXT:    "id": "0x{{.*}}",45// CHECK-NEXT:    "kind": "NamespaceDecl",46// CHECK-NEXT:    "loc": {47// CHECK-NEXT:     "offset": {{[0-9]+}},48// CHECK-NEXT:     "line": 5,49// CHECK-NEXT:     "col": 11,50// CHECK-NEXT:     "tokLen": 251// CHECK-NEXT:    },52// CHECK-NEXT:    "range": {53// CHECK-NEXT:     "begin": {54// CHECK-NEXT:      "offset": {{[0-9]+}},55// CHECK-NEXT:      "col": 1,56// CHECK-NEXT:      "tokLen": 957// CHECK-NEXT:     },58// CHECK-NEXT:     "end": {59// CHECK-NEXT:      "offset": {{[0-9]+}},60// CHECK-NEXT:      "line": 7,61// CHECK-NEXT:      "col": 1,62// CHECK-NEXT:      "tokLen": 163// CHECK-NEXT:     }64// CHECK-NEXT:    },65// CHECK-NEXT:    "name": "NS",66// CHECK-NEXT:    "inner": [67// CHECK-NEXT:     {68// CHECK-NEXT:      "id": "0x{{.*}}",69// CHECK-NEXT:      "kind": "FunctionDecl",70// CHECK-NEXT:      "loc": {71// CHECK-NEXT:       "offset": {{[0-9]+}},72// CHECK-NEXT:       "line": 6,73// CHECK-NEXT:       "col": 6,74// CHECK-NEXT:       "tokLen": 875// CHECK-NEXT:      },76// CHECK-NEXT:      "range": {77// CHECK-NEXT:       "begin": {78// CHECK-NEXT:        "offset": {{[0-9]+}},79// CHECK-NEXT:        "col": 1,80// CHECK-NEXT:        "tokLen": 481// CHECK-NEXT:       },82// CHECK-NEXT:       "end": {83// CHECK-NEXT:        "offset": {{[0-9]+}},84// CHECK-NEXT:        "col": 15,85// CHECK-NEXT:        "tokLen": 186// CHECK-NEXT:       }87// CHECK-NEXT:      },88// CHECK-NEXT:      "name": "Function",89// CHECK-NEXT:      "mangledName": "_ZN4Test2NS8FunctionEv",90// CHECK-NEXT:      "type": {91// CHECK-NEXT:       "qualType": "void ()"92// CHECK-NEXT:      }93// CHECK-NEXT:     }94// CHECK-NEXT:    ]95// CHECK-NEXT:   },96// CHECK-NEXT:   {97// CHECK-NEXT:    "id": "0x{{.*}}",98// CHECK-NEXT:    "kind": "FunctionDecl",99// CHECK-NEXT:    "loc": {100// CHECK-NEXT:     "offset": {{[0-9]+}},101// CHECK-NEXT:     "line": 8,102// CHECK-NEXT:     "col": 10,103// CHECK-NEXT:     "tokLen": 8104// CHECK-NEXT:    },105// CHECK-NEXT:    "range": {106// CHECK-NEXT:     "begin": {107// CHECK-NEXT:      "offset": {{[0-9]+}},108// CHECK-NEXT:      "col": 1,109// CHECK-NEXT:      "tokLen": 4110// CHECK-NEXT:     },111// CHECK-NEXT:     "end": {112// CHECK-NEXT:      "offset": {{[0-9]+}},113// CHECK-NEXT:      "col": 22,114// CHECK-NEXT:      "tokLen": 1115// CHECK-NEXT:     }116// CHECK-NEXT:    },117// CHECK-NEXT:    "parentDeclContextId": "0x{{.*}}",118// CHECK-NEXT:    "previousDecl": "0x{{.*}}",119// CHECK-NEXT:    "name": "Function",120// CHECK-NEXT:    "mangledName": "_ZN4Test2NS8FunctionEv",121// CHECK-NEXT:    "type": {122// CHECK-NEXT:     "qualType": "void ()"123// CHECK-NEXT:    },124// CHECK-NEXT:    "inner": [125// CHECK-NEXT:     {126// CHECK-NEXT:      "id": "0x{{.*}}",127// CHECK-NEXT:      "kind": "CompoundStmt",128// CHECK-NEXT:      "range": {129// CHECK-NEXT:       "begin": {130// CHECK-NEXT:        "offset": {{[0-9]+}},131// CHECK-NEXT:        "col": 21,132// CHECK-NEXT:        "tokLen": 1133// CHECK-NEXT:       },134// CHECK-NEXT:       "end": {135// CHECK-NEXT:        "offset": {{[0-9]+}},136// CHECK-NEXT:        "col": 22,137// CHECK-NEXT:        "tokLen": 1138// CHECK-NEXT:       }139// CHECK-NEXT:      }140// CHECK-NEXT:     }141// CHECK-NEXT:    ]142// CHECK-NEXT:   },143// CHECK-NEXT:   {144// CHECK-NEXT:    "id": "0x{{.*}}",145// CHECK-NEXT:    "kind": "CXXRecordDecl",146// CHECK-NEXT:    "loc": {147// CHECK-NEXT:     "offset": {{[0-9]+}},148// CHECK-NEXT:     "line": 10,149// CHECK-NEXT:     "col": 8,150// CHECK-NEXT:     "tokLen": 1151// CHECK-NEXT:    },152// CHECK-NEXT:    "range": {153// CHECK-NEXT:     "begin": {154// CHECK-NEXT:      "offset": {{[0-9]+}},155// CHECK-NEXT:      "col": 1,156// CHECK-NEXT:      "tokLen": 6157// CHECK-NEXT:     },158// CHECK-NEXT:     "end": {159// CHECK-NEXT:      "offset": {{[0-9]+}},160// CHECK-NEXT:      "line": 12,161// CHECK-NEXT:      "col": 1,162// CHECK-NEXT:      "tokLen": 1163// CHECK-NEXT:     }164// CHECK-NEXT:    },165// CHECK-NEXT:    "name": "S",166// CHECK-NEXT:    "tagUsed": "struct",167// CHECK-NEXT:    "completeDefinition": true,168// CHECK-NEXT:    "definitionData": {169// CHECK-NEXT:     "canConstDefaultInit": true,170// CHECK-NEXT:     "canPassInRegisters": true,171// CHECK-NEXT:     "copyAssign": {172// CHECK-NEXT:      "hasConstParam": true,173// CHECK-NEXT:      "implicitHasConstParam": true,174// CHECK-NEXT:      "needsImplicit": true,175// CHECK-NEXT:      "simple": true,176// CHECK-NEXT:      "trivial": true177// CHECK-NEXT:     },178// CHECK-NEXT:     "copyCtor": {179// CHECK-NEXT:      "hasConstParam": true,180// CHECK-NEXT:      "implicitHasConstParam": true,181// CHECK-NEXT:      "needsImplicit": true,182// CHECK-NEXT:      "simple": true,183// CHECK-NEXT:      "trivial": true184// CHECK-NEXT:     },185// CHECK-NEXT:     "defaultCtor": {186// CHECK-NEXT:      "defaultedIsConstexpr": true,187// CHECK-NEXT:      "exists": true,188// CHECK-NEXT:      "isConstexpr": true,189// CHECK-NEXT:      "needsImplicit": true,190// CHECK-NEXT:      "trivial": true191// CHECK-NEXT:     },192// CHECK-NEXT:     "dtor": {193// CHECK-NEXT:      "irrelevant": true,194// CHECK-NEXT:      "needsImplicit": true,195// CHECK-NEXT:      "simple": true,196// CHECK-NEXT:      "trivial": true197// CHECK-NEXT:     },198// CHECK-NEXT:     "hasConstexprNonCopyMoveConstructor": true,199// CHECK-NEXT:     "isAggregate": true,200// CHECK-NEXT:     "isEmpty": true,201// CHECK-NEXT:     "isLiteral": true,202// CHECK-NEXT:     "isPOD": true,203// CHECK-NEXT:     "isStandardLayout": true,204// CHECK-NEXT:     "isTrivial": true,205// CHECK-NEXT:     "isTriviallyCopyable": true,206// CHECK-NEXT:     "moveAssign": {207// CHECK-NEXT:      "exists": true,208// CHECK-NEXT:      "needsImplicit": true,209// CHECK-NEXT:      "simple": true,210// CHECK-NEXT:      "trivial": true211// CHECK-NEXT:     },212// CHECK-NEXT:     "moveCtor": {213// CHECK-NEXT:      "exists": true,214// CHECK-NEXT:      "needsImplicit": true,215// CHECK-NEXT:      "simple": true,216// CHECK-NEXT:      "trivial": true217// CHECK-NEXT:     }218// CHECK-NEXT:    },219// CHECK-NEXT:    "inner": [220// CHECK-NEXT:     {221// CHECK-NEXT:      "id": "0x{{.*}}",222// CHECK-NEXT:      "kind": "CXXRecordDecl",223// CHECK-NEXT:      "loc": {224// CHECK-NEXT:       "offset": {{[0-9]+}},225// CHECK-NEXT:       "line": 10,226// CHECK-NEXT:       "col": 8,227// CHECK-NEXT:       "tokLen": 1228// CHECK-NEXT:      },229// CHECK-NEXT:      "range": {230// CHECK-NEXT:       "begin": {231// CHECK-NEXT:        "offset": {{[0-9]+}},232// CHECK-NEXT:        "col": 1,233// CHECK-NEXT:        "tokLen": 6234// CHECK-NEXT:       },235// CHECK-NEXT:       "end": {236// CHECK-NEXT:        "offset": {{[0-9]+}},237// CHECK-NEXT:        "col": 8,238// CHECK-NEXT:        "tokLen": 1239// CHECK-NEXT:       }240// CHECK-NEXT:      },241// CHECK-NEXT:      "isImplicit": true,242// CHECK-NEXT:      "name": "S",243// CHECK-NEXT:      "tagUsed": "struct"244// CHECK-NEXT:     },245// CHECK-NEXT:     {246// CHECK-NEXT:      "id": "0x{{.*}}",247// CHECK-NEXT:      "kind": "CXXMethodDecl",248// CHECK-NEXT:      "loc": {249// CHECK-NEXT:       "offset": {{[0-9]+}},250// CHECK-NEXT:       "line": 11,251// CHECK-NEXT:       "col": 8,252// CHECK-NEXT:       "tokLen": 6253// CHECK-NEXT:      },254// CHECK-NEXT:      "range": {255// CHECK-NEXT:       "begin": {256// CHECK-NEXT:        "offset": {{[0-9]+}},257// CHECK-NEXT:        "col": 3,258// CHECK-NEXT:        "tokLen": 4259// CHECK-NEXT:       },260// CHECK-NEXT:       "end": {261// CHECK-NEXT:        "offset": {{[0-9]+}},262// CHECK-NEXT:        "col": 15,263// CHECK-NEXT:        "tokLen": 1264// CHECK-NEXT:       }265// CHECK-NEXT:      },266// CHECK-NEXT:      "name": "Method",267// CHECK-NEXT:      "mangledName": "_ZN4Test1S6MethodEv",268// CHECK-NEXT:      "type": {269// CHECK-NEXT:       "qualType": "void ()"270// CHECK-NEXT:      }271// CHECK-NEXT:     }272// CHECK-NEXT:    ]273// CHECK-NEXT:   },274// CHECK-NEXT:   {275// CHECK-NEXT:    "id": "0x{{.*}}",276// CHECK-NEXT:    "kind": "CXXMethodDecl",277// CHECK-NEXT:    "loc": {278// CHECK-NEXT:     "offset": {{[0-9]+}},279// CHECK-NEXT:     "line": 13,280// CHECK-NEXT:     "col": 9,281// CHECK-NEXT:     "tokLen": 6282// CHECK-NEXT:    },283// CHECK-NEXT:    "range": {284// CHECK-NEXT:     "begin": {285// CHECK-NEXT:      "offset": {{[0-9]+}},286// CHECK-NEXT:      "col": 1,287// CHECK-NEXT:      "tokLen": 4288// CHECK-NEXT:     },289// CHECK-NEXT:     "end": {290// CHECK-NEXT:      "offset": {{[0-9]+}},291// CHECK-NEXT:      "col": 19,292// CHECK-NEXT:      "tokLen": 1293// CHECK-NEXT:     }294// CHECK-NEXT:    },295// CHECK-NEXT:    "parentDeclContextId": "0x{{.*}}",296// CHECK-NEXT:    "previousDecl": "0x{{.*}}",297// CHECK-NEXT:    "name": "Method",298// CHECK-NEXT:    "mangledName": "_ZN4Test1S6MethodEv",299// CHECK-NEXT:    "type": {300// CHECK-NEXT:     "qualType": "void ()"301// CHECK-NEXT:    },302// CHECK-NEXT:    "inner": [303// CHECK-NEXT:     {304// CHECK-NEXT:      "id": "0x{{.*}}",305// CHECK-NEXT:      "kind": "CompoundStmt",306// CHECK-NEXT:      "range": {307// CHECK-NEXT:       "begin": {308// CHECK-NEXT:        "offset": {{[0-9]+}},309// CHECK-NEXT:        "col": 18,310// CHECK-NEXT:        "tokLen": 1311// CHECK-NEXT:       },312// CHECK-NEXT:       "end": {313// CHECK-NEXT:        "offset": {{[0-9]+}},314// CHECK-NEXT:        "col": 19,315// CHECK-NEXT:        "tokLen": 1316// CHECK-NEXT:       }317// CHECK-NEXT:      }318// CHECK-NEXT:     }319// CHECK-NEXT:    ]320// CHECK-NEXT:   }321// CHECK-NEXT:  ]322// CHECK-NEXT: }323