http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46675

--- Comment #2 from Uros Bizjak <ubizjak at gmail dot com> 2010-11-27 09:32:47 
UTC ---
The loop in following part of verify_instructions_0 is miscompiled:

----cut here----
    case op_lookupswitch:
      {
        int i;
        jint npairs, lastkey;

        pop_type (int_type);
        skip_padding ();
        push_jump (get_int (), 7);
        npairs = get_int ();
        /* Already checked NPAIRS >= 0.  */
        lastkey = 0;
        for (i = 0; i < npairs; ++i)
          {
        jint key = get_int ();
        if (i > 0 && key <= lastkey)
          verify_fail_pc ("lookupswitch pairs unsorted", vfr->start_PC);
        lastkey = key;
        push_jump (get_int (), 8);
          }
        invalidate_pc ();
      }
      break;
----cut here----

The count variable (i) does not increase and stays at zero.

Reply via email to