Fix misuses of MAX_MACHINE_MODE that can result in an infinite loop.

* explow.c (hard_function_value): Use VOIDmode instead of
	MAX_MACHINE_MODE.
	* stmt.c (expand_return): Likewise.
	* stor-layout.c (get_best_mode): Likewise.

From-SVN: r28717
This commit is contained in:
Jim Wilson 1999-08-15 20:08:12 +00:00 committed by Jim Wilson
parent d3ca5cdd6c
commit 0c61f5414d
4 changed files with 10 additions and 5 deletions

View file

@ -1,5 +1,10 @@
Sun Aug 15 12:41:21 1999 Jim Wilson <wilson@cygnus.com>
* explow.c (hard_function_value): Use VOIDmode instead of
MAX_MACHINE_MODE.
* stmt.c (expand_return): Likewise.
* stor-layout.c (get_best_mode): Likewise.
* genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
emit call instead of emit_insn call.

View file

@ -1529,7 +1529,7 @@ hard_function_value (valtype, func)
int bytes = int_size_in_bytes (valtype);
enum machine_mode tmpmode;
for (tmpmode = GET_CLASS_NARROWEST_MODE (MODE_INT);
tmpmode != MAX_MACHINE_MODE;
tmpmode != VOIDmode;
tmpmode = GET_MODE_WIDER_MODE (tmpmode))
{
/* Have we found a large enough mode? */
@ -1538,7 +1538,7 @@ hard_function_value (valtype, func)
}
/* No suitable mode found. */
if (tmpmode == MAX_MACHINE_MODE)
if (tmpmode == VOIDmode)
abort ();
PUT_MODE (val, tmpmode);

View file

@ -2817,7 +2817,7 @@ expand_return (retval)
on the USE insn for the return register. */
bytes = int_size_in_bytes (TREE_TYPE (retval_rhs));
for (tmpmode = GET_CLASS_NARROWEST_MODE (MODE_INT);
tmpmode != MAX_MACHINE_MODE;
tmpmode != VOIDmode;
tmpmode = GET_MODE_WIDER_MODE (tmpmode))
{
/* Have we found a large enough mode? */
@ -2826,7 +2826,7 @@ expand_return (retval)
}
/* No suitable mode found. */
if (tmpmode == MAX_MACHINE_MODE)
if (tmpmode == VOIDmode)
abort ();
PUT_MODE (DECL_RTL (DECL_RESULT (current_function_decl)), tmpmode);

View file

@ -1352,7 +1352,7 @@ get_best_mode (bitsize, bitpos, align, largest_mode, volatilep)
break;
}
if (mode == MAX_MACHINE_MODE
if (mode == VOIDmode
/* It is tempting to omit the following line
if STRICT_ALIGNMENT is true.
But that is incorrect, since if the bitfield uses part of 3 bytes