diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-02-27 00:25:28 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-02-27 00:25:28 +0000 |
commit | beab56e9235dc6b65217fd2daa8999c2232ec3f2 (patch) | |
tree | 87dbcf674aae4891925be5a34e720751c146df77 /clang/lib/AST/DeclCXX.cpp | |
parent | 67c0aece75092d6d7cacc1d09fd6a76bfc89d397 (diff) | |
download | bcm5719-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.cpp | 7 |
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] = |