aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2025-02-24 09:45:28 +0100
committerRichard Biener <rguenth@gcc.gnu.org>2025-02-24 11:11:54 +0100
commit9e4c57f7a69d7060612c83867ecff61a719b97af (patch)
tree448c72f19528225838d817c0c8c1d6d675bac809 /gcc/c
parent27ebd2a55cd373542977b21631b6b0919e703733 (diff)
downloadgcc-9e4c57f7a69d7060612c83867ecff61a719b97af.zip
gcc-9e4c57f7a69d7060612c83867ecff61a719b97af.tar.gz
gcc-9e4c57f7a69d7060612c83867ecff61a719b97af.tar.bz2
tree-optimization/118973 - stray abnormal edge after DCE
DCE preserves stmts performing abnormal control flow transfer but currently has an exception for replaceable allocations and cxa_atexit calls. That results in a broken CFG since DCE isn't set up to prune abnormal edges possibly hanging off those. While we could try to add this handling, the following is the safe fix at this point and more suitable for backporting. PR tree-optimization/118973 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Calls that alter control flow in unpredictable ways need to be preserved. * g++.dg/torture/pr118973.C: New testcase.
Diffstat (limited to 'gcc/c')
0 files changed, 0 insertions, 0 deletions