summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplate.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-12-17 19:34:15 +0000
committerReid Kleckner <reid@kleckner.net>2014-12-17 19:34:15 +0000
commit8d7aac8406691689bd11583302105c79ccb431b9 (patch)
tree879e362d11099c2c739d2b58b701a72f7d44f357 /clang/lib/Sema/SemaTemplate.cpp
parent9aca5e07ec05185e67051677ace1834fc0eb1cf8 (diff)
downloadbcm5719-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.cpp2
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);
OpenPOWER on IntegriCloud