From: Chris Lattner Date: Tue, 19 Feb 2002 21:24:17 +0000 (+0000) Subject: Fix isArrayAllocation() to be correct X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a9a16c712ea4af90546ab3b3d36e54dcdd9fe356;p=oota-llvm.git Fix isArrayAllocation() to be correct git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1779 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/iMemory.h b/include/llvm/iMemory.h index 13b1400d3a3..ec04b281dbc 100644 --- a/include/llvm/iMemory.h +++ b/include/llvm/iMemory.h @@ -35,9 +35,9 @@ public: } // isArrayAllocation - Return true if there is an allocation size parameter - // to the allocation instruction. + // to the allocation instruction that is not 1. // - inline bool isArrayAllocation() const { return Operands.size() == 1; } + bool isArrayAllocation() const; inline const Value *getArraySize() const { assert(isArrayAllocation()); return Operands[0]; diff --git a/lib/VMCore/iMemory.cpp b/lib/VMCore/iMemory.cpp index 4226a696157..7280998a17d 100644 --- a/lib/VMCore/iMemory.cpp +++ b/lib/VMCore/iMemory.cpp @@ -5,12 +5,18 @@ //===----------------------------------------------------------------------===// #include "llvm/iMemory.h" +#include "llvm/ConstantVals.h" static inline const Type *checkType(const Type *Ty) { assert(Ty && "Invalid indices for type!"); return Ty; } +bool AllocationInst::isArrayAllocation() const { + return getNumOperands() == 1 && + getOperand(0) != ConstantUInt::get(Type::UIntTy, 1); +} + //===----------------------------------------------------------------------===// // MemAccessInst Implementation //===----------------------------------------------------------------------===//