[LLVMbugs] [Bug 1197] switch lowering infinitely loops, chews memory.

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Feb 21 03:31:11 PST 2007


http://llvm.org/bugs/show_bug.cgi?id=1197

asl at math.spbu.ru changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |



------- Additional Comments From asl at math.spbu.ru  2007-02-21 05:31 -------
switch lowering is still broken somehow.

Consider the folowing code:

define i32 @main(i32 %argc, i8** %argv) {
old_entry1:
        br label %cond_next
cond_next:
        %not.tmp14 = icmp slt i32 %argc, 11
        %hvar2 = zext i1 %not.tmp14 to i32
        switch i32 %hvar2, label %old_entry [
                 i32 -2, label %cond_true
                 i32 -1, label %cond_next
                 i32 0, label %cond_true15
                 i32 1, label %cond_next22
        ]
cond_true15:
        ret i32 1
cond_true:
        ret i32 2
cond_next22:
        ret i32 3
old_entry:
        ret i32 4
}

(Yes, I know, that cases -1 and -2 are really dead).

Resulting binary will always produce result code 4. Commenting out "-1" and "-2"
cases will fix the problem.



------- 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