A bunch more thunk fixes from misc testing.

(Yes, I do intend to commit some tests for this.)

llvm-svn: 90818
This commit is contained in:
Eli Friedman
2009-12-07 23:56:34 +00:00
parent 1d849219a5
commit 31bc3ad275
4 changed files with 72 additions and 54 deletions

View File

@@ -625,7 +625,13 @@ void CodeGenModule::EmitGlobalDefinition(GlobalDecl GD) {
getVtableInfo().MaybeEmitVtable(GD);
if (MD->isVirtual() && MD->isOutOfLine() &&
(!isa<CXXDestructorDecl>(D) || GD.getDtorType() != Dtor_Base)) {
BuildThunksForVirtual(GD);
if (isa<CXXDestructorDecl>(D)) {
GlobalDecl CanonGD(cast<CXXDestructorDecl>(D->getCanonicalDecl()),
GD.getDtorType());
BuildThunksForVirtual(CanonGD);
} else {
BuildThunksForVirtual(MD->getCanonicalDecl());
}
}
}