[llvm-commits] [llvm-gcc-4.2] r43298 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Dale Johannesen
dalej at apple.com
Wed Oct 24 10:06:19 PDT 2007
Author: johannes
Date: Wed Oct 24 12:06:19 2007
New Revision: 43298
URL: http://llvm.org/viewvc/llvm-project?rev=43298&view=rev
Log:
Honor signedness of constant when converting
ptr+-constant to getelementptr.
gcc.c-torture/execute/20010329-1.c
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=43298&r1=43297&r2=43298&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Wed Oct 24 12:06:19 2007
@@ -2872,8 +2872,8 @@
TREE_CODE(TREE_OPERAND(exp, 1)) == INTEGER_CST) {
int64_t Offset = getINTEGER_CSTVal(TREE_OPERAND(exp, 1));
- // If POINTER_SIZE is 32-bits, sign extend the offset.
- if (POINTER_SIZE == 32)
+ // If POINTER_SIZE is 32-bits and the offset is signed, sign extend the offset.
+ if (POINTER_SIZE == 32 && !TYPE_UNSIGNED(TREE_TYPE(TREE_OPERAND(exp, 1))))
Offset = (Offset << 32) >> 32;
// Figure out how large the element pointed to is.
More information about the llvm-commits
mailing list