diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 897e1c1..9573ce7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 23 23:32:14 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (expand_assignment): Do not try to optimize a aggregate + address which has VOIDmode. + Tue Mar 23 22:51:48 1999 Mumit Khan <khan@xraylith.wisc.edu> Donn Terry <donn@interix.com> @@ -3276,8 +3276,11 @@ expand_assignment (to, from, want_value, suggest_reg) #endif } + /* A constant address in TO_RTX can have VOIDmode, we must not try + to call force_reg for that case. Avoid that case. */ if (GET_CODE (to_rtx) == MEM && GET_MODE (to_rtx) == BLKmode + && GET_MODE (XEXP (to_rtx, 0)) != VOIDmode && bitsize && (bitpos % bitsize) == 0 && (bitsize % GET_MODE_ALIGNMENT (mode1)) == 0 |