Removing unnecessary ADDR_EXPRs

Richard Guenther richard.guenther@gmail.com
Tue May 17 19:43:00 GMT 2005


On 5/17/05, Jeffrey A Law <law@redhat.com> wrote:
> Can you dump the types of the outer INDIRECT_REF, the ADDR_EXPR and
> the first argument to the ADDR_EXPR?    The only way I can see folding
> failing is if there's a type bogosity somewhere.  I've instrumented that
> code locally, but haven't managed to make it trip yet.

Sorry to followup again, but I suppose I merely trigger a latent bug elsewhere.
Actually, during rewrite_into_ssa we call parse_ssa_operands on
(&<retval>)->_M_stateD.32454 = __stD.41263 which finally calls
get_indirect_ref_operands with the above stmt and expr = *&<retval>
It isn't expecting an expr of this form, unfortunately.  So it looks something
before rewrite_into_ssa is producing non-gimple?  Actually changing all
fold_indirect_ref in tree-inline.c to fold_indirect_ref_rhs fixes the problem.

Richard.



More information about the Gcc-patches mailing list