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