Dump this-adjustments for destructors as well.
llvm-svn: 96660
This commit is contained in:
parent
821095085b
commit
2d3d903872
|
@ -1552,22 +1552,39 @@ void VtableBuilder::dumpLayout(llvm::raw_ostream& Out) {
|
|||
break;
|
||||
}
|
||||
|
||||
case VtableComponent::CK_CompleteDtorPointer: {
|
||||
case VtableComponent::CK_CompleteDtorPointer:
|
||||
case VtableComponent::CK_DeletingDtorPointer: {
|
||||
bool IsComplete =
|
||||
Component.getKind() == VtableComponent::CK_CompleteDtorPointer;
|
||||
|
||||
const CXXDestructorDecl *DD = Component.getDestructorDecl();
|
||||
|
||||
Out << DD->getQualifiedNameAsString() << "() [complete]";
|
||||
Out << DD->getQualifiedNameAsString();
|
||||
if (IsComplete)
|
||||
Out << "() [complete]";
|
||||
else
|
||||
Out << "() [deleting]";
|
||||
|
||||
if (DD->isPure())
|
||||
Out << " [pure]";
|
||||
|
||||
break;
|
||||
// If this destructor has a 'this' pointer adjustment, dump it.
|
||||
if (NextThisAdjustmentIndex < ThisAdjustments.size() &&
|
||||
ThisAdjustments[NextThisAdjustmentIndex].first == I) {
|
||||
const ThisAdjustment Adjustment =
|
||||
ThisAdjustments[NextThisAdjustmentIndex].second;
|
||||
|
||||
Out << "\n [this adjustment: ";
|
||||
Out << Adjustment.NonVirtual << " non-virtual";
|
||||
|
||||
if (Adjustment.VCallOffsetOffset)
|
||||
Out << ", " << Adjustment.VCallOffsetOffset << " vcall offset offset";
|
||||
|
||||
Out << ']';
|
||||
|
||||
NextThisAdjustmentIndex++;
|
||||
}
|
||||
|
||||
case VtableComponent::CK_DeletingDtorPointer: {
|
||||
const CXXDestructorDecl *DD = Component.getDestructorDecl();
|
||||
|
||||
Out << DD->getQualifiedNameAsString() << "() [deleting]";
|
||||
if (DD->isPure())
|
||||
Out << " [pure]";
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue