[LLVMbugs] [Bug 268] NEW: llvm-gcc generates incorrect values for pointer subtraction

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Mar 2 10:51:33 PST 2004


http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=268

           Summary: llvm-gcc generates incorrect values for pointer
                    subtraction
           Product: tools
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: llvm-gcc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: criswell at uiuc.edu


The llvm-gcc program mis-compiles certain pointer arithmetic expressions. 
Namely, it seems to generate incorrect LLVM code for expressions which subtract
from pointer values.

The attached C and corresponding LLVM code demonstrate the problem: The expression:

argv[0] - 5

...becomes:

%tmp.3 = getelementptr sbyte* %tmp.2, long 4294967291    ; ty=sbyte*

Note that the -5 is represented as an unsigned number (4294967291).  This might
work, except that long's in LLVM are 64 bits and are translated as such in the
CBE and LLC.

This causes the hbd program to segfault under certain conditions, and it might
be causing other subtle failures in other programs.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list