diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-02-04 22:54:41 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-02-04 22:54:41 +0000 |
commit | 3d98703523dfdce04839a2f7927eabaf8220887b (patch) | |
tree | 162227206c814e52af5351bf99ecdad9cfaaa18e /clang/lib/Serialization/ASTReaderDecl.cpp | |
parent | 220b4fe4a93d9a3a0ea3fe0a716a037fcae1e7c3 (diff) | |
download | bcm5719-llvm-3d98703523dfdce04839a2f7927eabaf8220887b.tar.gz bcm5719-llvm-3d98703523dfdce04839a2f7927eabaf8220887b.zip |
PR25271: When attaching default template arguments to redeclarations of a
template, keep looking for default arguments if we see a template parameter
pack. There may be default arguments preceding a pack with no default argument.
Patch by Jannis Harder!
llvm-svn: 259836
Diffstat (limited to 'clang/lib/Serialization/ASTReaderDecl.cpp')
-rw-r--r-- | clang/lib/Serialization/ASTReaderDecl.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp index 9bcd9a01649..b249da99462 100644 --- a/clang/lib/Serialization/ASTReaderDecl.cpp +++ b/clang/lib/Serialization/ASTReaderDecl.cpp @@ -3016,6 +3016,8 @@ static void inheritDefaultTemplateArguments(ASTContext &Context, for (unsigned I = 0, N = FromTP->size(); I != N; ++I) { NamedDecl *FromParam = FromTP->getParam(N - I - 1); + if (FromParam->isParameterPack()) + continue; NamedDecl *ToParam = ToTP->getParam(N - I - 1); if (auto *FTTP = dyn_cast<TemplateTypeParmDecl>(FromParam)) { |