aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1999-08-15 20:08:12 +0000
committerJim Wilson <wilson@gcc.gnu.org>1999-08-15 13:08:12 -0700
commit0c61f5414d8f8df2d10e7d7898b715796fad5684 (patch)
tree628dc0d63ba7285efc78eb5dc42dd3491930fe05 /gcc
parentd3ca5cdd6c49d1d8e1d384db19f82c35c73db194 (diff)
downloadgcc-0c61f5414d8f8df2d10e7d7898b715796fad5684.zip
gcc-0c61f5414d8f8df2d10e7d7898b715796fad5684.tar.gz
gcc-0c61f5414d8f8df2d10e7d7898b715796fad5684.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/explow.c4
-rw-r--r--gcc/stmt.c4
-rw-r--r--gcc/stor-layout.c2
4 files changed, 10 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8604099..1f5106d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/explow.c b/gcc/explow.c
index b79aa9b..2e0de41a 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -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);
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 8c08997..9cfc700 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -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);
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index fe9fb90..408846a 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -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