mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-09 01:29:52 +00:00
Consistently dump default template arguments for template parameters as 'TemplateArgument's.
llvm-svn: 204572
This commit is contained in:
parent
423380f9a2
commit
ecf74ff40a
@ -1188,8 +1188,10 @@ void ASTDumper::VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) {
|
||||
if (D->isParameterPack())
|
||||
OS << " ...";
|
||||
dumpName(D);
|
||||
if (D->hasDefaultArgument())
|
||||
dumpType(D->getDefaultArgument());
|
||||
if (D->hasDefaultArgument()) {
|
||||
lastChild();
|
||||
dumpTemplateArgument(D->getDefaultArgument());
|
||||
}
|
||||
}
|
||||
|
||||
void ASTDumper::VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) {
|
||||
@ -1197,8 +1199,10 @@ void ASTDumper::VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) {
|
||||
if (D->isParameterPack())
|
||||
OS << " ...";
|
||||
dumpName(D);
|
||||
if (D->hasDefaultArgument())
|
||||
dumpStmt(D->getDefaultArgument());
|
||||
if (D->hasDefaultArgument()) {
|
||||
lastChild();
|
||||
dumpTemplateArgument(D->getDefaultArgument());
|
||||
}
|
||||
}
|
||||
|
||||
void ASTDumper::VisitTemplateTemplateParmDecl(
|
||||
@ -1207,8 +1211,10 @@ void ASTDumper::VisitTemplateTemplateParmDecl(
|
||||
OS << " ...";
|
||||
dumpName(D);
|
||||
dumpTemplateParameters(D->getTemplateParameters());
|
||||
if (D->hasDefaultArgument())
|
||||
if (D->hasDefaultArgument()) {
|
||||
lastChild();
|
||||
dumpTemplateArgumentLoc(D->getDefaultArgument());
|
||||
}
|
||||
}
|
||||
|
||||
void ASTDumper::VisitUsingDecl(const UsingDecl *D) {
|
||||
|
@ -308,7 +308,8 @@ namespace TestTemplateTypeParmDecl {
|
||||
// CHECK: NamespaceDecl{{.*}} TestTemplateTypeParmDecl
|
||||
// CHECK-NEXT: FunctionTemplateDecl
|
||||
// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename ... T
|
||||
// CHECK-NEXT: TemplateTypeParmDecl{{.*}} class U 'int'
|
||||
// CHECK-NEXT: TemplateTypeParmDecl{{.*}} class U
|
||||
// CHECK-NEXT: TemplateArgument type 'int'
|
||||
|
||||
namespace TestNonTypeTemplateParmDecl {
|
||||
template<int I = 1, int ... J> void foo();
|
||||
@ -316,7 +317,8 @@ namespace TestNonTypeTemplateParmDecl {
|
||||
// CHECK: NamespaceDecl{{.*}} TestNonTypeTemplateParmDecl
|
||||
// CHECK-NEXT: FunctionTemplateDecl
|
||||
// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' I
|
||||
// CHECK-NEXT: IntegerLiteral{{.*}} 'int' 1
|
||||
// CHECK-NEXT: TemplateArgument expr
|
||||
// CHECK-NEXT: IntegerLiteral{{.*}} 'int' 1
|
||||
// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' ... J
|
||||
|
||||
namespace TestTemplateTemplateParmDecl {
|
||||
|
Loading…
Reference in New Issue
Block a user