[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