From bcc0cedf77054dc0ab7aac9d652118def4f5d8e7 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Mon, 27 May 2019 14:17:32 +0000 Subject: [PATCH] When dumping the AST to JSON, dump the argument name to a sizeof pack expression. llvm-svn: 361766 --- clang/include/clang/AST/JSONNodeDumper.h | 1 + clang/lib/AST/JSONNodeDumper.cpp | 4 ++++ clang/test/AST/ast-dump-expr-json.cpp | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/AST/JSONNodeDumper.h b/clang/include/clang/AST/JSONNodeDumper.h index b966747f4239..dfad90b16d79 100644 --- a/clang/include/clang/AST/JSONNodeDumper.h +++ b/clang/include/clang/AST/JSONNodeDumper.h @@ -244,6 +244,7 @@ public: void VisitImplicitCastExpr(const ImplicitCastExpr *ICE); void VisitCallExpr(const CallExpr *CE); void VisitUnaryExprOrTypeTraitExpr(const UnaryExprOrTypeTraitExpr *TTE); + void VisitSizeOfPackExpr(const SizeOfPackExpr *SOPE); void VisitUnresolvedLookupExpr(const UnresolvedLookupExpr *ULE); void VisitAddrLabelExpr(const AddrLabelExpr *ALE); diff --git a/clang/lib/AST/JSONNodeDumper.cpp b/clang/lib/AST/JSONNodeDumper.cpp index afe43e436dcf..a6600c0c84de 100644 --- a/clang/lib/AST/JSONNodeDumper.cpp +++ b/clang/lib/AST/JSONNodeDumper.cpp @@ -894,6 +894,10 @@ void JSONNodeDumper::VisitUnaryExprOrTypeTraitExpr( JOS.attribute("argType", createQualType(TTE->getArgumentType())); } +void JSONNodeDumper::VisitSizeOfPackExpr(const SizeOfPackExpr *SOPE) { + VisitNamedDecl(SOPE->getPack()); +} + void JSONNodeDumper::VisitUnresolvedLookupExpr( const UnresolvedLookupExpr *ULE) { JOS.attribute("usesADL", ULE->requiresADL()); diff --git a/clang/test/AST/ast-dump-expr-json.cpp b/clang/test/AST/ast-dump-expr-json.cpp index 81c3e66c3952..0c541666d26b 100644 --- a/clang/test/AST/ast-dump-expr-json.cpp +++ b/clang/test/AST/ast-dump-expr-json.cpp @@ -1505,7 +1505,8 @@ void TestNonADLCall3() { // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "unsigned long" // CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "rvalue" +// CHECK-NEXT: "valueCategory": "rvalue", +// CHECK-NEXT: "name": "Ts" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}",