summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-03-11 23:27:41 +0000
committerDouglas Gregor <dgregor@apple.com>2011-03-11 23:27:41 +0000
commit5ecbb1bc24f1945c97661308bdab8b47ea267017 (patch)
treefe77f6950072f8a20d355636fd207102598e1dc5 /clang/lib
parentb7c6e8f5752d727f725406d2611964fe2dd86fae (diff)
downloadbcm5719-llvm-5ecbb1bc24f1945c97661308bdab8b47ea267017.tar.gz
bcm5719-llvm-5ecbb1bc24f1945c97661308bdab8b47ea267017.zip
Don't ask if a depenendent CXXRecordDecl has any dependent bases
unless we already know that it has a definition. Fixes PR9449/<rdar://problem/9115785>. llvm-svn: 127512
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaTemplate.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 23329a3ab6c..ec1cf6c556e 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -2036,7 +2036,8 @@ TemplateNameKind Sema::ActOnDependentTemplateName(Scope *S,
MemberOfUnknownSpecialization);
if (TNK == TNK_Non_template && LookupCtx->isDependentContext() &&
isa<CXXRecordDecl>(LookupCtx) &&
- cast<CXXRecordDecl>(LookupCtx)->hasAnyDependentBases()) {
+ (!cast<CXXRecordDecl>(LookupCtx)->hasDefinition() ||
+ cast<CXXRecordDecl>(LookupCtx)->hasAnyDependentBases())) {
// This is a dependent template. Handle it below.
} else if (TNK == TNK_Non_template) {
Diag(Name.getSourceRange().getBegin(),
OpenPOWER on IntegriCloud