]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-inline.c
re PR middle-end/57147 (setjmp call and if body wrongly elided (function runs off...
authorRichard Biener <rguenther@suse.de>
Mon, 6 May 2013 11:27:29 +0000 (11:27 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 6 May 2013 11:27:29 +0000 (11:27 +0000)
commit0107dca2adf82db79c54d6da9707035533d474d6
tree08393bb2ffe3daf1347d560e6951600839f91db7
parente5123d087ed24066c03c97c92a15d255c8d318dd
re PR middle-end/57147 (setjmp call and if body wrongly elided (function runs off early end))

2013-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/57147
* tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
the edge is also fallthru, preserve it and just clear the
abnormal flag.
* tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
also complex, preserve that and just clear the fallthru flag.
* tree-inline.c (update_ssa_across_abnormal_edges): Also
update virtual operands.

* gcc.dg/torture/pr57147-1.c: New testcase.
* gcc.dg/torture/pr57147-2.c: Likewise.
* gcc.dg/torture/pr57147-3.c: Likewise.

From-SVN: r198625
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr57147-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr57147-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr57147-3.c [new file with mode: 0644]
gcc/tree-cfg.c
gcc/tree-cfgcleanup.c
gcc/tree-inline.c