Skip to content

Commit cda3198

Browse files
[clang] Add missing field to TLSModelAttr json AST dump
Recommit with test case updated. Differential Revision: https://reviews.llvm.org/D157814
1 parent f2dd62f commit cda3198

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

clang/include/clang/AST/JSONNodeDumper.h

+1
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ class JSONNodeDumper
214214
void VisitUnavailableAttr(const UnavailableAttr *UA);
215215
void VisitSectionAttr(const SectionAttr *SA);
216216
void VisitVisibilityAttr(const VisibilityAttr *VA);
217+
void VisitTLSModelAttr(const TLSModelAttr *TA);
217218

218219
void VisitTypedefType(const TypedefType *TT);
219220
void VisitUsingType(const UsingType *TT);

clang/lib/AST/JSONNodeDumper.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,10 @@ void JSONNodeDumper::VisitVisibilityAttr(const VisibilityAttr *VA) {
559559
VA->getVisibility()));
560560
}
561561

562+
void JSONNodeDumper::VisitTLSModelAttr(const TLSModelAttr *TA) {
563+
JOS.attribute("tls_model", TA->getModel());
564+
}
565+
562566
void JSONNodeDumper::VisitTypedefType(const TypedefType *TT) {
563567
JOS.attribute("decl", createBareDeclRef(TT->getDecl()));
564568
if (!TT->typeMatchesDecl())

clang/test/AST/ast-dump-attr-json.cpp

+49
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ __attribute__ ((section ("SECTION_NAME"))) int section_var;
1919

2020
__attribute__ ((visibility ("hidden"))) int visibility_var;
2121

22+
__thread __attribute__ ((tls_model ("local-exec"))) int tls_model_var;
2223

2324
// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
2425
// using --filters=VarDecl
@@ -479,3 +480,51 @@ __attribute__ ((visibility ("hidden"))) int visibility_var;
479480
// CHECK-NEXT: }
480481
// CHECK-NEXT: ]
481482
// CHECK-NEXT: }
483+
484+
485+
// CHECK-NOT: {{^}}Dumping
486+
// CHECK: "kind": "VarDecl",
487+
// CHECK-NEXT: "loc": {
488+
// CHECK-NEXT: "offset": 748,
489+
// CHECK-NEXT: "line": 22,
490+
// CHECK-NEXT: "col": 57,
491+
// CHECK-NEXT: "tokLen": 13
492+
// CHECK-NEXT: },
493+
// CHECK-NEXT: "range": {
494+
// CHECK-NEXT: "begin": {
495+
// CHECK-NEXT: "offset": 692,
496+
// CHECK-NEXT: "col": 1,
497+
// CHECK-NEXT: "tokLen": 8
498+
// CHECK-NEXT: },
499+
// CHECK-NEXT: "end": {
500+
// CHECK-NEXT: "offset": 748,
501+
// CHECK-NEXT: "col": 57,
502+
// CHECK-NEXT: "tokLen": 13
503+
// CHECK-NEXT: }
504+
// CHECK-NEXT: },
505+
// CHECK-NEXT: "name": "tls_model_var",
506+
// CHECK-NEXT: "mangledName": "tls_model_var",
507+
// CHECK-NEXT: "type": {
508+
// CHECK-NEXT: "qualType": "int"
509+
// CHECK-NEXT: },
510+
// CHECK-NEXT: "tls": "static",
511+
// CHECK-NEXT: "inner": [
512+
// CHECK-NEXT: {
513+
// CHECK-NEXT: "id": "0x{{.*}}",
514+
// CHECK-NEXT: "kind": "TLSModelAttr",
515+
// CHECK-NEXT: "range": {
516+
// CHECK-NEXT: "begin": {
517+
// CHECK-NEXT: "offset": 717,
518+
// CHECK-NEXT: "col": 26,
519+
// CHECK-NEXT: "tokLen": 9
520+
// CHECK-NEXT: },
521+
// CHECK-NEXT: "end": {
522+
// CHECK-NEXT: "offset": 740,
523+
// CHECK-NEXT: "col": 49,
524+
// CHECK-NEXT: "tokLen": 1
525+
// CHECK-NEXT: }
526+
// CHECK-NEXT: },
527+
// CHECK-NEXT: "tls_model": "local-exec"
528+
// CHECK-NEXT: }
529+
// CHECK-NEXT: ]
530+
// CHECK-NEXT: }

0 commit comments

Comments
 (0)