summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2014-04-17 08:57:09 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2014-04-17 08:57:09 +0000
commitde4077a5d3268a4df41b418e21040fe3683b68d1 (patch)
treeed95e29e07bad1f5f64720e0eed2cbc3aa324389 /clang/lib
parent518210e2642f97cdf837bf9b38c7aedc4dd81bb5 (diff)
downloadbcm5719-llvm-de4077a5d3268a4df41b418e21040fe3683b68d1.tar.gz
bcm5719-llvm-de4077a5d3268a4df41b418e21040fe3683b68d1.zip
SemaTemplate.cpp: Rework r206451. Removing an argument was really bad idea.
llvm-svn: 206452
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaTemplate.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index e4d2a41f5ae..a7764d8df92 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -1722,8 +1722,7 @@ TemplateParameterList *Sema::MatchTemplateParametersToScopeSpecifier(
// explicitly specialized.
bool SawNonEmptyTemplateParameterList = false;
- auto CheckExplicitSpecialization = [&](SourceRange Range) {
- bool Recovery = false;
+ auto CheckExplicitSpecialization = [&](SourceRange Range, bool Recovery) {
if (SawNonEmptyTemplateParameterList) {
Diag(DeclLoc, diag::err_specialize_member_of_template)
<< !Recovery << Range;
@@ -1823,7 +1822,8 @@ TemplateParameterList *Sema::MatchTemplateParametersToScopeSpecifier(
// are not explicitly specialized as well.
if (ParamIdx < ParamLists.size()) {
if (ParamLists[ParamIdx]->size() == 0) {
- if (CheckExplicitSpecialization(ParamLists[ParamIdx]->getSourceRange()))
+ if (CheckExplicitSpecialization(ParamLists[ParamIdx]->getSourceRange(),
+ false))
return 0;
} else
SawNonEmptyTemplateParameterList = true;
@@ -1959,7 +1959,8 @@ TemplateParameterList *Sema::MatchTemplateParametersToScopeSpecifier(
// specialize a class member template if its en- closing class templates
// are not explicitly specialized as well.
if (ParamLists.back()->size() == 0 &&
- CheckExplicitSpecialization(ParamLists[ParamIdx]->getSourceRange()))
+ CheckExplicitSpecialization(ParamLists[ParamIdx]->getSourceRange(),
+ false))
return 0;
// Return the last template parameter list, which corresponds to the
OpenPOWER on IntegriCloud