From d4c85a8040ce7d08cab2fce51d3516a6c4bc973d Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 21 Feb 2017 02:04:03 +0000 Subject: [PATCH] Add template parameter depth and index to -ast-dump output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@295689 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AST/ASTDumper.cpp | 3 +++ test/Misc/ast-dump-decl.cpp | 8 ++++---- test/SemaTemplate/default-expr-arguments-3.cpp | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp index 62261ccc90..4d6eeb3d71 100644 --- a/lib/AST/ASTDumper.cpp +++ b/lib/AST/ASTDumper.cpp @@ -1463,6 +1463,7 @@ void ASTDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { OS << " typename"; else OS << " class"; + OS << " depth " << D->getDepth() << " index " << D->getIndex(); if (D->isParameterPack()) OS << " ..."; dumpName(D); @@ -1472,6 +1473,7 @@ void ASTDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { void ASTDumper::VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) { dumpType(D->getType()); + OS << " depth " << D->getDepth() << " index " << D->getIndex(); if (D->isParameterPack()) OS << " ..."; dumpName(D); @@ -1481,6 +1483,7 @@ void ASTDumper::VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) { void ASTDumper::VisitTemplateTemplateParmDecl( const TemplateTemplateParmDecl *D) { + OS << " depth " << D->getDepth() << " index " << D->getIndex(); if (D->isParameterPack()) OS << " ..."; dumpName(D); diff --git a/test/Misc/ast-dump-decl.cpp b/test/Misc/ast-dump-decl.cpp index c966e133eb..e1cdeb0995 100644 --- a/test/Misc/ast-dump-decl.cpp +++ b/test/Misc/ast-dump-decl.cpp @@ -355,8 +355,8 @@ namespace TestTemplateTypeParmDecl { } // CHECK: NamespaceDecl{{.*}} TestTemplateTypeParmDecl // CHECK-NEXT: FunctionTemplateDecl -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename ... T -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} class U +// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename depth 0 index 0 ... T +// CHECK-NEXT: TemplateTypeParmDecl{{.*}} class depth 0 index 1 U // CHECK-NEXT: TemplateArgument type 'int' namespace TestNonTypeTemplateParmDecl { @@ -364,10 +364,10 @@ namespace TestNonTypeTemplateParmDecl { } // CHECK: NamespaceDecl{{.*}} TestNonTypeTemplateParmDecl // CHECK-NEXT: FunctionTemplateDecl -// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' I +// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' depth 0 index 0 I // CHECK-NEXT: TemplateArgument expr // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 1 -// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' ... J +// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' depth 0 index 1 ... J namespace TestTemplateTemplateParmDecl { template class A; diff --git a/test/SemaTemplate/default-expr-arguments-3.cpp b/test/SemaTemplate/default-expr-arguments-3.cpp index 9dc3b13430..173609c045 100644 --- a/test/SemaTemplate/default-expr-arguments-3.cpp +++ b/test/SemaTemplate/default-expr-arguments-3.cpp @@ -37,7 +37,7 @@ template struct class2 { template struct class2; // CHECK: FunctionTemplateDecl {{.*}} f1 -// CHECK-NEXT: TemplateTypeParmDecl {{.*}} typename T +// CHECK-NEXT: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 T // CHECK-NEXT: FunctionDecl {{.*}} f1 'void (void)' // CHECK: FunctionDecl {{.*}} f1 'void (void)' // CHECK-NEXT: TemplateArgument type 'int' -- 2.40.0