On Aug 18, 2006, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:

> Geoffrey Keating <[EMAIL PROTECTED]> writes:

>> On 18/08/2006, at 5:42 PM, Ian Lance Taylor wrote:

>> > We could avoid nesting memcpy calls on ACCUMULATE_OUTGOING_ARGS
>> > machines, in which case I think Alex's patch is unnecessary.

>> > I'm not sure about your option 1--Alex didn't say that he couldn't
>> > reproduce the bug in mainline, he said he didn't have a test case for
>> > the specific case of memcpy popping the arguments off the stack on
>> > return.

>> I'm not sure how memcpy gets involved here.  memcpy doesn't throw, so
>> there's no need for any args_size data for it---in fact, it's a small
>> optimization bug that such data gets reflected in the EH information
>> at all.

>> Alex said that he couldn't find a case that didn't involve memcpy.
>> Maybe an appropriate 'fix' is to revert the patch and put an assert
>> in calls.c to ensure that a nested function call must be nothrow?

> That seems quite plausible to me.  Alex?

For the record, as far as I could tell, the only case of nested
function calls surviving gimplification were function calls introduced
by the call machinery itself, and that would be memcpy to copy
arguments to the right spot on the stack.

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
Secretary for FSF Latin America        http://www.fsfla.org/
Red Hat Compiler Engineer   [EMAIL PROTECTED], gcc.gnu.org}
Free Software Evangelist  [EMAIL PROTECTED], gnu.org}

Reply via email to