When dumping the AST to JSON, dump the argument name to a sizeof pack expression.
authorAaron Ballman <aaron@aaronballman.com>
Mon, 27 May 2019 14:17:32 +0000 (14:17 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Mon, 27 May 2019 14:17:32 +0000 (14:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@361766 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/JSONNodeDumper.h
lib/AST/JSONNodeDumper.cpp
test/AST/ast-dump-expr-json.cpp

index b966747f423992a1db32994ada72110604a17e1a..dfad90b16d7913ee8989ca855cfdd676098816c7 100644 (file)
@@ -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);
 
index afe43e436dcf96fefebaccb21993acc0babdf863..a6600c0c84deb796df066e7e9dcb67cb8fefe2b5 100644 (file)
@@ -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());
index 81c3e66c39523a44ad60554e46b9d1c46bf9448f..0c541666d26b54ad46ce1187238eff8b6e0fa601 100644 (file)
@@ -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{{.*}}",