summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclCXX.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-02-27 00:25:28 +0000
committerDouglas Gregor <dgregor@apple.com>2010-02-27 00:25:28 +0000
commitbeab56e9235dc6b65217fd2daa8999c2232ec3f2 (patch)
tree87dbcf674aae4891925be5a34e720751c146df77 /clang/lib/AST/DeclCXX.cpp
parent67c0aece75092d6d7cacc1d09fd6a76bfc89d397 (diff)
downloadbcm5719-llvm-beab56e9235dc6b65217fd2daa8999c2232ec3f2.tar.gz
bcm5719-llvm-beab56e9235dc6b65217fd2daa8999c2232ec3f2.zip
Skip dependent virtual base classes; fixes PR6413.
llvm-svn: 97291
Diffstat (limited to 'clang/lib/AST/DeclCXX.cpp')
-rw-r--r--clang/lib/AST/DeclCXX.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp
index 73cba1d61ed..aa4b2dd1d08 100644
--- a/clang/lib/AST/DeclCXX.cpp
+++ b/clang/lib/AST/DeclCXX.cpp
@@ -94,9 +94,7 @@ CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases,
// Keep track of inherited vbases for this base class.
const CXXBaseSpecifier *Base = Bases[i];
QualType BaseType = Base->getType();
- // Skip template types.
- // FIXME. This means that this list must be rebuilt during template
- // instantiation.
+ // Skip dependent types; we can't do any checking on them now.
if (BaseType->isDependentType())
continue;
CXXRecordDecl *BaseClassDecl
@@ -143,6 +141,9 @@ CXXRecordDecl::setBases(CXXBaseSpecifier const * const *Bases,
data().NumVBases = vbaseCount;
for (int i = 0; i < vbaseCount; i++) {
QualType QT = UniqueVbases[i]->getType();
+ // Skip dependent types; we can't do any checking on them now.
+ if (QT->isDependentType())
+ continue;
CXXRecordDecl *VBaseClassDecl
= cast<CXXRecordDecl>(QT->getAs<RecordType>()->getDecl());
data().VBases[i] =
OpenPOWER on IntegriCloud