summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplate.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-08-28 20:50:45 +0000
committerDouglas Gregor <dgregor@apple.com>2009-08-28 20:50:45 +0000
commit39cacdb04b29099084cb7760cc3e823f551ecbaf (patch)
treea6af18c993322181cc1f99b42e09b1812452cf1e /clang/lib/Sema/SemaTemplate.cpp
parent6533292684f223871629d6f20027ca151a2e5976 (diff)
downloadbcm5719-llvm-39cacdb04b29099084cb7760cc3e823f551ecbaf.tar.gz
bcm5719-llvm-39cacdb04b29099084cb7760cc3e823f551ecbaf.zip
Tighten up the conversion from a single-level template argument list
to a multi-level template argument list by making it explicit. The forced auditing of callers found a bug in the instantiation of member classes inside member templates. I *love* static type systems. llvm-svn: 80391
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplate.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 4fa09d8fda9..d72cea09071 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -1319,7 +1319,8 @@ bool Sema::CheckTemplateArgumentList(TemplateDecl *Template,
TemplateArgumentList TemplateArgs(Context, Converted,
/*TakeArgs=*/false);
- NTTPType = SubstType(NTTPType, TemplateArgs,
+ NTTPType = SubstType(NTTPType,
+ MultiLevelTemplateArgumentList(TemplateArgs),
NTTP->getLocation(),
NTTP->getDeclName());
// If that worked, check the non-type template parameter type
OpenPOWER on IntegriCloud