stmt.c bugfix
Jeffrey A Law
law@cygnus.com
Thu Jan 14 21:43:00 GMT 1999
This fixes 930111-1.c on the v850, and possibly other platforms that are
aborting because emit_cmp_insn is being presented with non-canonical rtl
* stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
generating non-canonical rtl.
*************** expand_end_case (orig_index)
*** 5098,5105 ****
index_expr, minval);
minval = integer_zero_node;
index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0);
! emit_cmp_insn (rangertx, index, LTU, NULL_RTX, omode, 1, 0);
! emit_jump_insn (gen_bltu (default_label));
/* Now we can safely truncate. */
index = convert_to_mode (index_mode, index, 0);
}
--- 5120,5127 ----
index_expr, minval);
minval = integer_zero_node;
index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0);
! emit_cmp_and_jump_insns (rangertx, index, LTU, NULL_RTX,
! omode, 1, 0, default_label);
/* Now we can safely truncate. */
index = convert_to_mode (index_mode, index, 0);
}
More information about the Gcc-patches
mailing list