This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: aggregate_value_p in the gimplifier
> We want to know if we have an aggregate type that is not returned
> in registers. We want this for two reasons:
>
> (1) RESULT_DECLs assigned PARALLEL rtl are only handled in expand_return,
> and not in expand_assignment. Thus without rearranging things we
> can't separate <RETURN_EXPR <MODIFY_EXPR <RESULT_DECL> value>>.
>
> (2) We don't want to extend the lifetime of return registers. Which is
> what would happen if we allowed <MODIFY_EXPR <RESULT_DECL> value>
> anywhere in the function.
So the test is not problematic from the pure C compiler's viewpoint? This
would mean that the behaviour of the C compiler depends upon a part of the
ABI that is not supposed to affect the C language.
[Jim, thanks for your previous answer.]
--
Eric Botcazou