forked from OSchip/llvm-project
Skip over bases/fields with dependent types.
Fixes pr4771. llvm-svn: 79999
This commit is contained in:
parent
68f051594b
commit
797cf62703
|
@ -529,6 +529,8 @@ CXXDestructorDecl::computeBaseOrMembersToDestroy(ASTContext &C) {
|
|||
|
||||
for (CXXRecordDecl::base_class_iterator VBase = ClassDecl->vbases_begin(),
|
||||
E = ClassDecl->vbases_end(); VBase != E; ++VBase) {
|
||||
if (VBase->getType()->isDependentType())
|
||||
continue;
|
||||
// Skip over virtual bases which have trivial destructors.
|
||||
CXXRecordDecl *BaseClassDecl
|
||||
= cast<CXXRecordDecl>(VBase->getType()->getAs<RecordType>()->getDecl());
|
||||
|
@ -543,6 +545,8 @@ CXXDestructorDecl::computeBaseOrMembersToDestroy(ASTContext &C) {
|
|||
E = ClassDecl->bases_end(); Base != E; ++Base) {
|
||||
if (Base->isVirtual())
|
||||
continue;
|
||||
if (Base->getType()->isDependentType())
|
||||
continue;
|
||||
// Skip over virtual bases which have trivial destructors.
|
||||
CXXRecordDecl *BaseClassDecl
|
||||
= cast<CXXRecordDecl>(Base->getType()->getAs<RecordType>()->getDecl());
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// RUN: clang-cc -fsyntax-only -verify %s
|
||||
|
||||
template<typename A> class s0 {
|
||||
|
||||
template<typename B> class s1 : public s0<A> {
|
||||
~s1() {}
|
||||
s0<A> ms0;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue