From: Dan Gohman Date: Sat, 18 Jul 2009 01:49:22 +0000 (+0000) Subject: Make GetElementPtr ConstantExprs default to having no pointer overflow. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5a206ee7edbd6eccc45f03054dad7a8b2eaf975b;p=oota-llvm.git Make GetElementPtr ConstantExprs default to having no pointer overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76280 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 81f544b0e82..f6d8e86850f 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -18,6 +18,7 @@ #include "llvm/Instructions.h" #include "llvm/MDNode.h" #include "llvm/Module.h" +#include "llvm/Operator.h" #include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/StringMap.h" @@ -474,8 +475,11 @@ public: static GetElementPtrConstantExpr *Create(Constant *C, const std::vector&IdxList, const Type *DestTy) { - return new(IdxList.size() + 1) + GetElementPtrConstantExpr *Result = new(IdxList.size() + 1) GetElementPtrConstantExpr(C, IdxList, DestTy); + // Getelementptr defaults to having no pointer overflow. + cast(Result)->setHasNoPointerOverflow(true); + return Result; } /// Transparently provide more efficient getOperand methods. DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);