diff options
author | Richard Trieu <rtrieu@google.com> | 2017-06-15 01:35:06 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2017-06-15 01:35:06 +0000 |
commit | d9201d0a02c4b392c57490d13bb307a5025fcbfa (patch) | |
tree | 3d6ddb1971bc37ee207a0fc904110757f709bcb5 /clang/lib/AST/ODRHash.cpp | |
parent | 210a787f291f3f049da1959e059c9d7a633bdc40 (diff) | |
download | bcm5719-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.cpp | 11 |
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) { |