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.