On Mon, Nov 07, 2016 at 01:20:20PM +0100, Richard Biener wrote: > Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk > and branch. > > Richard. > > 2016-11-07 Richard Biener <rguent...@suse.de> > > PR target/78229 > * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust > EH info. > > * g++.dg/pr78229.C: New testcase.
On the trunk there are 2 other spots with gsi_replace (..., true); in the same function (and both of them are for functions which also should really be ECF_NOTHROW, but aren't). I haven't managed to create a simple testcase. Anyway, here is a fix, bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2016-11-07 Jakub Jelinek <ja...@redhat.com> PR target/78229 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust EH info even for bzhi and pdep/pext. --- gcc/config/i386/i386.c.jj 2016-11-07 18:32:14.000000000 +0100 +++ gcc/config/i386/i386.c 2016-11-07 18:46:10.901250307 +0100 @@ -33537,7 +33537,7 @@ ix86_gimple_fold_builtin (gimple_stmt_it location_t loc = gimple_location (stmt); gimple *g = gimple_build_assign (gimple_call_lhs (stmt), arg0); gimple_set_location (g, loc); - gsi_replace (gsi, g, true); + gsi_replace (gsi, g, false); return true; } break; @@ -33554,7 +33554,7 @@ ix86_gimple_fold_builtin (gimple_stmt_it arg0 = gimple_call_arg (stmt, 0); gimple *g = gimple_build_assign (gimple_call_lhs (stmt), arg0); gimple_set_location (g, loc); - gsi_replace (gsi, g, true); + gsi_replace (gsi, g, false); return true; } break; Jakub