diff options
author | Chris Lattner <sabre@nondot.org> | 2002-03-21 22:37:48 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-03-21 22:37:48 +0000 |
commit | 4fe130c22b2426bda067326a212922bace15778d (patch) | |
tree | 7c6d5006488b83cc04bb48c752ed9f2fe67d1398 | |
parent | 05c0e9e562de11be51938ac3124330177ccc00ff (diff) |
* AllocationInst ctor moved here from iMemory.h
* AllocationInst now always has an array size operand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1939 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/VMCore/iMemory.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/VMCore/iMemory.cpp b/lib/VMCore/iMemory.cpp index 7280998a17..cf80909d8b 100644 --- a/lib/VMCore/iMemory.cpp +++ b/lib/VMCore/iMemory.cpp @@ -12,6 +12,21 @@ static inline const Type *checkType(const Type *Ty) { return Ty; } +AllocationInst::AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy, + const std::string &Name = "") + : Instruction(Ty, iTy, Name) { + assert(Ty->isPointerType() && "Can't allocate a non pointer type!"); + + // ArraySize defaults to 1. + if (!ArraySize) ArraySize = ConstantUInt::get(Type::UIntTy, 1); + + Operands.reserve(1); + assert(ArraySize->getType() == Type::UIntTy && + "Malloc/Allocation array size != UIntTy!"); + + Operands.push_back(Use(ArraySize, this)); +} + bool AllocationInst::isArrayAllocation() const { return getNumOperands() == 1 && getOperand(0) != ConstantUInt::get(Type::UIntTy, 1); |