From a9a16c712ea4af90546ab3b3d36e54dcdd9fe356 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 19 Feb 2002 21:24:17 +0000 Subject: [PATCH] Fix isArrayAllocation() to be correct git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1779 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/iMemory.h | 4 ++-- lib/VMCore/iMemory.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) 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 //===----------------------------------------------------------------------===//