summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprCXX.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2018-08-08 00:42:42 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2018-08-08 00:42:42 +0000
commit2e34bbd8e842c6c0fb5adaaafcbf90d971d3c114 (patch)
tree2194c4084a36bd9e0e7a042ec66ce133fbf6226e /clang/lib/Sema/SemaExprCXX.cpp
parented2f9a6094ef2679fc8d9d70001c4f5b111c738d (diff)
downloadbcm5719-llvm-2e34bbd8e842c6c0fb5adaaafcbf90d971d3c114.tar.gz
bcm5719-llvm-2e34bbd8e842c6c0fb5adaaafcbf90d971d3c114.zip
PR38286: Don't crash when attempting to define a constructor for an
incomplete class template. llvm-svn: 339210
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 22f13280c38..c851a81af46 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -113,9 +113,15 @@ ParsedType Sema::getConstructorName(IdentifierInfo &II,
break;
}
}
- if (!InjectedClassName && CurClass->isInvalidDecl())
+ if (!InjectedClassName) {
+ if (!CurClass->isInvalidDecl()) {
+ // FIXME: RequireCompleteDeclContext doesn't check dependent contexts
+ // properly. Work around it here for now.
+ Diag(SS.getLastQualifierNameLoc(),
+ diag::err_incomplete_nested_name_spec) << CurClass << SS.getRange();
+ }
return ParsedType();
- assert(InjectedClassName && "couldn't find injected class name");
+ }
QualType T = Context.getTypeDeclType(InjectedClassName);
DiagnoseUseOfDecl(InjectedClassName, NameLoc);
OpenPOWER on IntegriCloud