Add some out-of-line virtual dtors so that the class has a "home", preventing

vtables for (e.g.) Instruction from being emitted into every .o file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28898 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2006-06-21 16:53:47 +00:00
parent 0ad19703ae
commit 70aa33ee37
7 changed files with 36 additions and 8 deletions

View File

@ -34,6 +34,8 @@ void CallSite::setCallingConv(unsigned CC) {
}
//===----------------------------------------------------------------------===//
// TerminatorInst Class
//===----------------------------------------------------------------------===//
@ -48,6 +50,13 @@ TerminatorInst::TerminatorInst(Instruction::TermOps iType,
: Instruction(Type::VoidTy, iType, Ops, NumOps, "", IAE) {
}
// Out of line virtual method, so the vtable, etc has a home.
TerminatorInst::~TerminatorInst() {
}
// Out of line virtual method, so the vtable, etc has a home.
UnaryInstruction::~UnaryInstruction() {
}
//===----------------------------------------------------------------------===//
@ -532,6 +541,10 @@ AllocationInst::AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy,
assert(Ty != Type::VoidTy && "Cannot allocate void!");
}
// Out of line virtual method, so the vtable, etc has a home.
AllocationInst::~AllocationInst() {
}
bool AllocationInst::isArrayAllocation() const {
if (ConstantUInt *CUI = dyn_cast<ConstantUInt>(getOperand(0)))
return CUI->getValue() != 1;