On Mon, Jan 9, 2012 at 3:57 PM, Aldy Hernandez <al...@redhat.com> wrote:
>
>> Ok with simply excluding SSA_NAMEs like
>>
>> @@ -4411,16 +4411,27 @@ gimplify_modify_expr_rhs (tree *expr_p,
>>                /* It's OK to use the target directly if it's being
>>                   initialized. */
>>                use_target = true;
>> -             else if (TREE_CODE (*to_p) != SSA_NAME
>>                          &&  ....)
>> -               /* Don't use the original target if it's already
>> addressable;
>> -                  if its address escapes, and the called function uses
>> the
>> -                  NRV optimization, a conforming program could see *to_p
>> -                  change before the called function returns; see
>> c++/19317.
>> -                  When optimizing, the return_slot pass marks more
>> functions
>> -                  as safe after we have escape info.  */
>> -               use_target = false;
>> -             else
>> -               use_target = true;
>>
>> as SSA_NAMEs can never become addressable during gimplification.
>
>
> Ok, since I'm never quite 100% sure I'm following your suggestions... I'm
> posting the final patch here.  If tests pass, I'll commit.

Yes, that looks fine.

Thanks,
Richard.

> Thanks again.

Reply via email to