summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateDeduction.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-01-04 23:42:36 +0000
committerDouglas Gregor <dgregor@apple.com>2011-01-04 23:42:36 +0000
commitf8a791263321d3d64c898ef7854d2182fc64e271 (patch)
tree1322b04a26024c9f00475553a1d39a506a10749d /clang/lib/Sema/SemaTemplateDeduction.cpp
parentca4686dc380fa801c114433d46c0cdfbeac3c996 (diff)
downloadbcm5719-llvm-f8a791263321d3d64c898ef7854d2182fc64e271.tar.gz
bcm5719-llvm-f8a791263321d3d64c898ef7854d2182fc64e271.zip
Eliminate some completely useless code that attempted to perform some
conversions on the substituted non-type template arguments of a class template partial specialization. C++ [temp.class.spec]p8 actually prohibits all of the cases where this code would have fired. Hey, it's better than having to deal with variadic templates here! llvm-svn: 122852
Diffstat (limited to 'clang/lib/Sema/SemaTemplateDeduction.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateDeduction.cpp32
1 files changed, 0 insertions, 32 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp
index 09bfcf5c463..bad30b3265d 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -1515,40 +1515,8 @@ FinishTemplateArgumentDeduction(Sema &S,
= ClassTemplate->getTemplateParameters();
for (unsigned I = 0, E = TemplateParams->size(); I != E; ++I) {
TemplateArgument InstArg = ConvertedInstArgs.data()[I];
-
Decl *Param = TemplateParams->getParam(I);
- if (NonTypeTemplateParmDecl *NTTP
- = dyn_cast<NonTypeTemplateParmDecl>(Param)) {
- // When the argument is an expression, check the expression result
- // against the actual template parameter to get down to the canonical
- // template argument.
- Expr *InstExpr = 0;
- if (InstArg.getKind() == TemplateArgument::Expression)
- InstExpr = InstArg.getAsExpr();
- else if (InstArg.getKind() == TemplateArgument::Integral) {
- ExprResult InstExprFromArg
- = S.BuildExpressionFromIntegralTemplateArgument(InstArg,
- Info.getLocation());
- if (InstExprFromArg.isInvalid()) {
- Info.Param = makeTemplateParameter(Param);
- Info.FirstArg = InstArg;
- return Sema::TDK_SubstitutionFailure;
- }
-
- InstExpr = InstExprFromArg.get();
- }
-
- if (InstExpr) {
- // FIXME: Variadic templates.
- if (S.CheckTemplateArgument(NTTP, NTTP->getType(), InstExpr, InstArg)) {
- Info.Param = makeTemplateParameter(Param);
- Info.FirstArg = Partial->getTemplateArgs()[I];
- return Sema::TDK_SubstitutionFailure;
- }
- }
- }
-
if (!isSameTemplateArg(S.Context, TemplateArgs[I], InstArg)) {
Info.Param = makeTemplateParameter(Param);
Info.FirstArg = TemplateArgs[I];
OpenPOWER on IntegriCloud