https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128426
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Keywords| |wrong-code
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
Priority|P3 |P1
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
e_6(ab) = 0;
# e_3(ab) = PHI <e_6(ab)(2)>
we're calling simple_dce_from_worklist with no_delete == true and that
simply zeros abnormal edge defs. no_delete doesn't make any sense
here.
#0 set_ssa_use_from_ptr (use=0x7ffff69d8840, val=<integer_cst 0x7ffff681f360>)
at /space/rguenther/src/gcc-clean/gcc/ssa-iterators.h:333
#1 0x0000000001d15e1d in simple_dce_from_worklist (worklist=0x7fffffffcb30,
need_eh_cleanup=0x0, no_delete=true)
at /space/rguenther/src/gcc-clean/gcc/tree-ssa-dce.cc:2331
#2 0x0000000001fbf156 in remove_unreachable::handle_early (
this=0x7fffffffd650, s=<gimple_cond 0x7ffff66045d8>,
e=<edge 0x7ffff69fee00 (4 -> 8)>)
at /space/rguenther/src/gcc-clean/gcc/tree-vrp.cc:251
#3 0x0000000001fbeba0 in remove_unreachable::maybe_register (
this=0x7fffffffd650, s=<gimple_cond 0x7ffff66045d8>)
at /space/rguenther/src/gcc-clean/gcc/tree-vrp.cc:132
#4 0x0000000001fc34d2 in rvrp_folder::pre_fold_stmt (this=0x7fffffffd620,
stmt=<gimple_cond 0x7ffff66045d8>)
at /space/rguenther/src/gcc-clean/gcc/tree-vrp.cc:1050
#5 0x0000000001dff83d in substitute_and_fold_dom_walker::before_dom_children (
this=0x7fffffffd010, bb=<basic_block 0x7ffff6602180 (4)>)
at /space/rguenther/src/gcc-clean/gcc/tree-ssa-propagate.cc:798
#6 0x0000000003966e35 in dom_walker::walk (this=0x7fffffffd010,
bb=<basic_block 0x7ffff6602180 (4)>)
at /space/rguenther/src/gcc-clean/gcc/domwalk.cc:311
#7 0x0000000001e000a2 in substitute_and_fold_engine::substitute_and_fold (
this=0x7fffffffd620, block=<basic_block 0x0>)
at /space/rguenther/src/gcc-clean/gcc/tree-ssa-propagate.cc:995
that's the odd __builtin_unreachable () handling.
I have a surgery.