expr.c (expand_expr, [...]): Do not try to optimize a aggregate address which has VOIDmode.

* expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF):
        Do not try to optimize a aggregate address which has VOIDmode.
        Mirrors March 23 change to expand_assignment.

From-SVN: r26307
This commit is contained in:
Jeffrey A Law 1999-04-09 01:35:36 +00:00 committed by Jeff Law
parent abb3f0a989
commit efd07ca794
2 changed files with 7 additions and 0 deletions

View File

@ -1,5 +1,9 @@
Thu Apr 8 19:20:18 1999 Jeffrey A Law (law@cygnus.com)
* expr.c (expand_expr, case ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF):
Do not try to optimize a aggregate address which has VOIDmode.
Mirrors March 23 change to expand_assignment.
* flow.c (delete_unreachable_blocks): Do not require an edge to
be marked with EDGE_FALLTHRU when tidying an edge which connects
consecutive basic blocks.

View File

@ -6417,8 +6417,11 @@ expand_expr (exp, target, tmode, modifier)
#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 (op0) == MEM
&& GET_MODE (op0) == BLKmode
&& GET_MODE (XEXP (op0, 0)) != VOIDmode
&& bitsize
&& (bitpos % bitsize) == 0
&& (bitsize % GET_MODE_ALIGNMENT (mode1)) == 0