[PATCH] D157795: [clang] Add missing field to SectionAttr json AST dump
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG4cf7666b8f09: [clang] Add missing field to SectionAttr json AST dump (authored by serge-sans-paille). Changed prior to commit: https://reviews.llvm.org/D157795?vs=549646=550078#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157795/new/ https://reviews.llvm.org/D157795 Files: clang/include/clang/AST/JSONNodeDumper.h clang/lib/AST/JSONNodeDumper.cpp clang/test/AST/ast-dump-attr-json.cpp Index: clang/test/AST/ast-dump-attr-json.cpp === --- clang/test/AST/ast-dump-attr-json.cpp +++ clang/test/AST/ast-dump-attr-json.cpp @@ -15,6 +15,8 @@ __attribute__((unavailable)) int unavailable_var0; __attribute__((unavailable("reason"))) int unavailable_var1; +__attribute__ ((section ("SECTION_NAME"))) int section_var; + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py // using --filters=VarDecl @@ -380,3 +382,50 @@ // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 593, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT:"offset": 546, +// CHECK-NEXT:"col": 1, +// CHECK-NEXT:"tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT:"offset": 593, +// CHECK-NEXT:"col": 48, +// CHECK-NEXT:"tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "section_var", +// CHECK-NEXT: "mangledName": "section_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT:"id": "0x{{.*}}", +// CHECK-NEXT:"kind": "SectionAttr", +// CHECK-NEXT:"range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 562, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 585, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT:}, +// CHECK-NEXT:"section_name": "SECTION_NAME" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } Index: clang/lib/AST/JSONNodeDumper.cpp === --- clang/lib/AST/JSONNodeDumper.cpp +++ clang/lib/AST/JSONNodeDumper.cpp @@ -550,6 +550,10 @@ JOS.attribute("message", UA->getMessage()); } +void JSONNodeDumper::VisitSectionAttr(const SectionAttr *SA) { + JOS.attribute("section_name", SA->getName()); +} + void JSONNodeDumper::VisitTypedefType(const TypedefType *TT) { JOS.attribute("decl", createBareDeclRef(TT->getDecl())); if (!TT->typeMatchesDecl()) Index: clang/include/clang/AST/JSONNodeDumper.h === --- clang/include/clang/AST/JSONNodeDumper.h +++ clang/include/clang/AST/JSONNodeDumper.h @@ -212,6 +212,7 @@ void VisitCleanupAttr(const CleanupAttr *CA); void VisitDeprecatedAttr(const DeprecatedAttr *DA); void VisitUnavailableAttr(const UnavailableAttr *UA); + void VisitSectionAttr(const SectionAttr *SA); void VisitTypedefType(const TypedefType *TT); void VisitUsingType(const UsingType *TT); Index: clang/test/AST/ast-dump-attr-json.cpp === --- clang/test/AST/ast-dump-attr-json.cpp +++ clang/test/AST/ast-dump-attr-json.cpp @@ -15,6 +15,8 @@ __attribute__((unavailable)) int unavailable_var0; __attribute__((unavailable("reason"))) int unavailable_var1; +__attribute__ ((section ("SECTION_NAME"))) int section_var; + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py // using --filters=VarDecl @@ -380,3 +382,50 @@ // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 593, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT:"offset": 546, +// CHECK-NEXT:"col": 1, +// CHECK-NEXT:"tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT:"offset": 593, +// CHECK-NEXT:"col": 48, +// CHECK-NEXT:"tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "section_var", +// CHECK-NEXT: "mangledName": "section_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT:"id": "0x{{.*}}", +// CHECK-NEXT:
[PATCH] D157795: [clang] Add missing field to SectionAttr json AST dump
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. LGTM! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157795/new/ https://reviews.llvm.org/D157795 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D157795: [clang] Add missing field to SectionAttr json AST dump
serge-sans-paille created this revision. serge-sans-paille added a reviewer: aaron.ballman. Herald added a project: All. serge-sans-paille requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D157795 Files: clang/include/clang/AST/JSONNodeDumper.h clang/lib/AST/JSONNodeDumper.cpp clang/test/AST/ast-dump-attr-json.cpp Index: clang/test/AST/ast-dump-attr-json.cpp === --- clang/test/AST/ast-dump-attr-json.cpp +++ clang/test/AST/ast-dump-attr-json.cpp @@ -15,6 +15,8 @@ __attribute__((unavailable)) int unavailable_var0; __attribute__((unavailable("reason"))) int unavailable_var1; +__attribute__ ((section ("SECTION_NAME"))) int section_var; + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py // using --filters=VarDecl @@ -384,3 +386,50 @@ // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 593, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT:"offset": 546, +// CHECK-NEXT:"col": 1, +// CHECK-NEXT:"tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT:"offset": 593, +// CHECK-NEXT:"col": 48, +// CHECK-NEXT:"tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "section_var", +// CHECK-NEXT: "mangledName": "section_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT:"id": "0x{{.*}}", +// CHECK-NEXT:"kind": "SectionAttr", +// CHECK-NEXT:"range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 562, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 585, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT:}, +// CHECK-NEXT:"section_name": "SECTION_NAME" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } Index: clang/lib/AST/JSONNodeDumper.cpp === --- clang/lib/AST/JSONNodeDumper.cpp +++ clang/lib/AST/JSONNodeDumper.cpp @@ -547,6 +547,10 @@ JOS.attribute("message", UA->getMessage()); } +void JSONNodeDumper::VisitSectionAttr(const SectionAttr *SA) { + JOS.attribute("section_name", SA->getName()); +} + void JSONNodeDumper::VisitTypedefType(const TypedefType *TT) { JOS.attribute("decl", createBareDeclRef(TT->getDecl())); if (!TT->typeMatchesDecl()) Index: clang/include/clang/AST/JSONNodeDumper.h === --- clang/include/clang/AST/JSONNodeDumper.h +++ clang/include/clang/AST/JSONNodeDumper.h @@ -212,6 +212,7 @@ void VisitCleanupAttr(const CleanupAttr *CA); void VisitDeprecatedAttr(const DeprecatedAttr *DA); void VisitUnavailableAttr(const UnavailableAttr *UA); + void VisitSectionAttr(const SectionAttr *SA); void VisitTypedefType(const TypedefType *TT); void VisitUsingType(const UsingType *TT); Index: clang/test/AST/ast-dump-attr-json.cpp === --- clang/test/AST/ast-dump-attr-json.cpp +++ clang/test/AST/ast-dump-attr-json.cpp @@ -15,6 +15,8 @@ __attribute__((unavailable)) int unavailable_var0; __attribute__((unavailable("reason"))) int unavailable_var1; +__attribute__ ((section ("SECTION_NAME"))) int section_var; + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py // using --filters=VarDecl @@ -384,3 +386,50 @@ // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 593, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT:"offset": 546, +// CHECK-NEXT:"col": 1, +// CHECK-NEXT:"tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT:"offset": 593, +// CHECK-NEXT:"col": 48, +// CHECK-NEXT:"tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "section_var", +// CHECK-NEXT: "mangledName": "section_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT:"id": "0x{{.*}}", +// CHECK-NEXT:"kind": "SectionAttr", +// CHECK-NEXT:"range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 562, +// CHECK-NEXT: "col": 17, +//