diff options
Diffstat (limited to 'clang/lib/Sema/SemaTemplateInstantiateExpr.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateExpr.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp index 780afd4468b..5476ad3502b 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp @@ -321,13 +321,17 @@ TemplateExprInstantiator::VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E) { Sema::OwningExprResult TemplateExprInstantiator::VisitUnresolvedDeclRefExpr(UnresolvedDeclRefExpr *E) { - CXXScopeSpec SS = SemaRef.InstantiateScopeSpecifier(E->begin(), E->size(), - E->getQualifierRange(), - TemplateArgs, - NumTemplateArgs); - if (SS.isInvalid() || SS.isEmpty()) + NestedNameSpecifier *NNS + = SemaRef.InstantiateNestedNameSpecifier(E->getQualifier(), + E->getQualifierRange(), + TemplateArgs, NumTemplateArgs); + if (!NNS) return SemaRef.ExprError(); + CXXScopeSpec SS; + SS.setRange(E->getQualifierRange()); + SS.setScopeRep(NNS); + // FIXME: We're passing in a NULL scope, because // ActOnDeclarationNameExpr doesn't actually use the scope when we // give it a non-empty scope specifier. Investigate whether it would |