[LLVMbugs] incorrect conversion of cast-ulong-to-uint to 0

Chris Lattner sabre at nondot.org
Mon May 26 16:48:33 PDT 2003

> In the third argument to printf below (UL/ui), the denominator
> is a cast of ulong to uint.  It is incorrectly converted to 0
> producing a divide-by-zero in the bc file.

Thanks, fixed:

FYI: this now is correctly compiled to:

void %main(int %argc.1, sbyte** %argv.1) {
        %tmp.1 = call ulong %getL()
        %tmp.8 = and ulong %tmp.1, 4294967295
        %tmp.9 = div ulong %tmp.1, %tmp.8
        %tmp.4 = call int (sbyte*, ...)* %printf( sbyte* getelementptr ([14 x sbyte]* %.str_1, long 0, long 0), ulong %tmp.9 )
        ret void


More information about the llvm-bugs mailing list