summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/TemplateBase.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-10-17 20:56:14 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-10-17 20:56:14 +0000
commitbc2e9718032727cc26dd9f589d7548e07d380f9d (patch)
tree88d5e73f94d799fdeac0fa92a3fda112efb53416 /clang/lib/AST/TemplateBase.cpp
parentfa1d0a7dbf5b11fae1e987bca2e1b227fd185853 (diff)
downloadbcm5719-llvm-bc2e9718032727cc26dd9f589d7548e07d380f9d.tar.gz
bcm5719-llvm-bc2e9718032727cc26dd9f589d7548e07d380f9d.zip
Fix the rest of PR21289: a pack expansion that we can't expand yet makes a
template specialization type dependent, even if it has no dependent template arguments. I've filed a corresponding bug against the C++ standard. llvm-svn: 220088
Diffstat (limited to 'clang/lib/AST/TemplateBase.cpp')
-rw-r--r--clang/lib/AST/TemplateBase.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/AST/TemplateBase.cpp b/clang/lib/AST/TemplateBase.cpp
index 929fdfc7ceb..f07b18e7c12 100644
--- a/clang/lib/AST/TemplateBase.cpp
+++ b/clang/lib/AST/TemplateBase.cpp
@@ -90,7 +90,8 @@ bool TemplateArgument::isDependent() const {
llvm_unreachable("Should not have a NULL template argument");
case Type:
- return getAsType()->isDependentType();
+ return getAsType()->isDependentType() ||
+ isa<PackExpansionType>(getAsType());
case Template:
return getAsTemplate().isDependent();
@@ -111,7 +112,8 @@ bool TemplateArgument::isDependent() const {
return false;
case Expression:
- return (getAsExpr()->isTypeDependent() || getAsExpr()->isValueDependent());
+ return (getAsExpr()->isTypeDependent() || getAsExpr()->isValueDependent() ||
+ isa<PackExpansionExpr>(getAsExpr()));
case Pack:
for (const auto &P : pack_elements())
OpenPOWER on IntegriCloud