This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Another bogus change



This change:

Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* stmt.c (expand_value_return): Correctly convert VAL when
	promoting function return; support RETURN_REG being a
	PARALLEL.

is wrong.

    if (return_reg != val)
      {
  #ifdef PROMOTE_FUNCTION_RETURN
	tree type = TREE_TYPE (DECL_RESULT (current_function_decl));
	int unsignedp = TREE_UNSIGNED (type);
	enum machine_mode old_mode
	  = DECL_MODE (DECL_RESULT (current_function_decl));
	enum machine_mode mode
	  = promote_mode (type, old_mode, &unsignedp, 1);

	if (mode != old_mode)
	  val = convert_modes (mode, old_mode, val, unsignedp);
  #endif
	if (GET_CODE (return_reg) == PARALLEL)
	  emit_group_load (return_reg, val, int_size_in_bytes (type),
			   TYPE_ALIGN (type) / BITS_PER_UNIT);

Here `type' is used, but not declared, in the case that
PROMOTE_FUNCTION_RETURN is not defined.  So, with this change we don't
even build the first-stage cc1 on an i686-pc-linux-gnu box.

I know you were just merging stuff from the GCC2 branch, but it still
might have been a good idea to check this stuff in in smaller,
better-tested chunks.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]