@@ -4958,11 +4958,10 @@ Sema::CheckVarTemplateId(VarTemplateDecl *Template, SourceLocation TemplateLoc,
4958
4958
return Decl;
4959
4959
}
4960
4960
4961
- ExprResult
4962
- Sema::CheckVarTemplateId (const CXXScopeSpec &SS,
4963
- const DeclarationNameInfo &NameInfo,
4964
- VarTemplateDecl *Template, SourceLocation TemplateLoc,
4965
- const TemplateArgumentListInfo *TemplateArgs) {
4961
+ ExprResult Sema::CheckVarTemplateId (
4962
+ const CXXScopeSpec &SS, const DeclarationNameInfo &NameInfo,
4963
+ VarTemplateDecl *Template, NamedDecl *FoundD, SourceLocation TemplateLoc,
4964
+ const TemplateArgumentListInfo *TemplateArgs) {
4966
4965
4967
4966
DeclResult Decl = CheckVarTemplateId (Template, TemplateLoc, NameInfo.getLoc (),
4968
4967
*TemplateArgs);
@@ -4978,8 +4977,7 @@ Sema::CheckVarTemplateId(const CXXScopeSpec &SS,
4978
4977
NameInfo.getLoc ());
4979
4978
4980
4979
// Build an ordinary singleton decl ref.
4981
- return BuildDeclarationNameExpr (SS, NameInfo, Var,
4982
- /* FoundD=*/ nullptr , TemplateArgs);
4980
+ return BuildDeclarationNameExpr (SS, NameInfo, Var, FoundD, TemplateArgs);
4983
4981
}
4984
4982
4985
4983
void Sema::diagnoseMissingTemplateArguments (TemplateName Name,
@@ -5066,9 +5064,9 @@ ExprResult Sema::BuildTemplateIdExpr(const CXXScopeSpec &SS,
5066
5064
bool KnownDependent = false ;
5067
5065
// In C++1y, check variable template ids.
5068
5066
if (R.getAsSingle <VarTemplateDecl>()) {
5069
- ExprResult Res = CheckVarTemplateId (SS, R. getLookupNameInfo (),
5070
- R.getAsSingle <VarTemplateDecl>(),
5071
- TemplateKWLoc, TemplateArgs);
5067
+ ExprResult Res = CheckVarTemplateId (
5068
+ SS, R. getLookupNameInfo (), R.getAsSingle <VarTemplateDecl>(),
5069
+ R. getRepresentativeDecl (), TemplateKWLoc, TemplateArgs);
5072
5070
if (Res.isInvalid () || Res.isUsable ())
5073
5071
return Res;
5074
5072
// Result is dependent. Carry on to build an UnresolvedLookupEpxr.
0 commit comments