On Thu, 7 Jul 2011, Jakub Jelinek wrote: > On Thu, Jul 07, 2011 at 02:55:45PM +0000, Joseph S. Myers wrote: > > On Thu, 7 Jul 2011, Jakub Jelinek wrote: > > > For MULT_EXPR and TRUNC_DIV_EXPR, both sides of COMPLEX_EXPR contain > > > a copy of the non-complex operand, which means its side-effects can be > > > evaluated twice. For PLUS_EXPR/MINUS_EXPR they appear just in one of > > > the operands and thus it works fine as is. > > > > > > Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, > > > ok for trunk/4.6? > > > > OK, but I think you need a similar patch for the C++ front end as well. > > Indeed, thanks. Attached is the corresponding C++ patch and simplified > C patch (with c_save_expr calls right in the switch stmt for the cases > that need it instead of another condition before).
This C patch is also OK. -- Joseph S. Myers jos...@codesourcery.com