[Bug tree-optimization/106866] [13 Regression] ICE in predicate::init_from_control_deps

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Sep 7 10:00:31 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106866

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
So somehow we late figure bar() doesn't return abnormally and thus DSE
eliminates a call to it but doesn't trigger

  if (need_ab_cleanup && stmt_can_make_abnormal_goto (stmt))
    bitmap_set_bit (need_ab_cleanup, bb->index);

which means when we either set ECF_LEAF to the function or cleared
cfun->calls_setjmp (the recursive invocation) we should have pruned
abnormal edges but we failed to.  That ends us with a block like

;;   basic block 4, loop depth 0
;;    pred:       12
;;                5
  # uninitialized_2(ab) = PHI <uninitialized_5(12), uninitialized_3(ab)(5)>
  goto <bb 11>; [99.96%]
;;    succ:       11
;;                5

where the 4->5 edge is abnormal but there's no stmt in this block that
could be responsible for it.  We also fail to verify ICE here.


More information about the Gcc-bugs mailing list