summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ODRHash.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2017-06-15 01:35:06 +0000
committerRichard Trieu <rtrieu@google.com>2017-06-15 01:35:06 +0000
commitd9201d0a02c4b392c57490d13bb307a5025fcbfa (patch)
tree3d6ddb1971bc37ee207a0fc904110757f709bcb5 /clang/lib/AST/ODRHash.cpp
parent210a787f291f3f049da1959e059c9d7a633bdc40 (diff)
downloadbcm5719-llvm-d9201d0a02c4b392c57490d13bb307a5025fcbfa.tar.gz
bcm5719-llvm-d9201d0a02c4b392c57490d13bb307a5025fcbfa.zip
[ODRHash] Hash TemplateArgument::Pack and TemplateTypeParmType
llvm-svn: 305440
Diffstat (limited to 'clang/lib/AST/ODRHash.cpp')
-rw-r--r--clang/lib/AST/ODRHash.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/AST/ODRHash.cpp b/clang/lib/AST/ODRHash.cpp
index f037827da83..3bf9896985e 100644
--- a/clang/lib/AST/ODRHash.cpp
+++ b/clang/lib/AST/ODRHash.cpp
@@ -159,6 +159,10 @@ void ODRHash::AddTemplateArgument(TemplateArgument TA) {
AddStmt(TA.getAsExpr());
break;
case TemplateArgument::Pack:
+ ID.AddInteger(TA.pack_size());
+ for (auto SubTA : TA.pack_elements()) {
+ AddTemplateArgument(SubTA);
+ }
break;
}
}
@@ -549,6 +553,13 @@ public:
Hash.AddTemplateName(T->getTemplateName());
VisitType(T);
}
+
+ void VisitTemplateTypeParmType(const TemplateTypeParmType *T) {
+ ID.AddInteger(T->getDepth());
+ ID.AddInteger(T->getIndex());
+ Hash.AddBoolean(T->isParameterPack());
+ AddDecl(T->getDecl());
+ }
};
void ODRHash::AddType(const Type *T) {
OpenPOWER on IntegriCloud