Question on aggregates and GIMPLE

Richard Henderson rth@redhat.com
Thu Jun 10 00:27:00 GMT 2004


On Wed, Jun 09, 2004 at 08:20:31PM -0400, Richard Kenner wrote:
>     <MODIFY_EXPR <INDIRECT_REF, INDIRECT_REF>> is valid GIMPLE, and shouldn't
>     require a temporary.  I think we're just getting confused by the
>     VIEW_CONVERT_EXPR.
> 
> Well, how about <MODIFY_EXPR <COMPONENT_REF, INDIRECT_REF>>?  It appears to
> be saying that if the LHS is "complex", the RHS must be a variable and
> trying to make a temporary.

Hmm.  I don't suppose

          || (flag_non_call_exceptions && tree_could_trap_p (*from_p))

is true in gimplify_modify_expr?  If so, I'm not sure how to approach
this.  Other languages require that MODIFY_EXPRs be atomic.  That is, 
either all of it happens or none of it happens.  I seem to recall that
Ada's requirements here are significantly more relaxed.


r~



More information about the Gcc mailing list