diff options
author | Dan Gohman <gohman@apple.com> | 2009-07-18 01:49:22 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-07-18 01:49:22 +0000 |
commit | 7d82e1338e2bef7ef3289600cb13a9769717848e (patch) | |
tree | 51888e9f7f7652abac98ac97afb68955150be95b /llvm | |
parent | 0c317a99c4801241f311ec7b6523069ba427a9ca (diff) | |
download | bcm5719-llvm-7d82e1338e2bef7ef3289600cb13a9769717848e.tar.gz bcm5719-llvm-7d82e1338e2bef7ef3289600cb13a9769717848e.zip |
Make GetElementPtr ConstantExprs default to having no pointer overflow.
llvm-svn: 76280
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/VMCore/Constants.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/VMCore/Constants.cpp b/llvm/lib/VMCore/Constants.cpp index 81f544b0e82..f6d8e86850f 100644 --- a/llvm/lib/VMCore/Constants.cpp +++ b/llvm/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<Constant*>&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<GEPOperator>(Result)->setHasNoPointerOverflow(true); + return Result; } /// Transparently provide more efficient getOperand methods. DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value); |