diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-12-17 19:34:15 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-12-17 19:34:15 +0000 |
commit | 8d7aac8406691689bd11583302105c79ccb431b9 (patch) | |
tree | 879e362d11099c2c739d2b58b701a72f7d44f357 /clang/lib/Sema/SemaTemplate.cpp | |
parent | 9aca5e07ec05185e67051677ace1834fc0eb1cf8 (diff) | |
download | bcm5719-llvm-8d7aac8406691689bd11583302105c79ccb431b9.tar.gz bcm5719-llvm-8d7aac8406691689bd11583302105c79ccb431b9.zip |
Don't build invalid AST nodes during recovery
A DependentScopeDeclRefExpr should always have a nested name specifier.
During template instantiation, if we found that the named context was
incomplete, we would previously build a DependentScopeDeclRefExpr with
an empty qualifier.
This error recovery path has been asserting for some time. The other
error codepaths use ExprError, so we can do the same.
Fixes PR21864.
llvm-svn: 224451
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 07e3137f845..f2e951e5749 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -2877,7 +2877,7 @@ Sema::BuildQualifiedTemplateIdExpr(CXXScopeSpec &SS, if (!(DC = computeDeclContext(SS, false)) || DC->isDependentContext() || RequireCompleteDeclContext(SS, DC)) - return BuildDependentDeclRefExpr(SS, TemplateKWLoc, NameInfo, TemplateArgs); + return ExprError(); bool MemberOfUnknownSpecialization; LookupResult R(*this, NameInfo, LookupOrdinaryName); |