https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119533
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Eric Botcazou from comment #7) > > Does go use sjlj EH "manually"? EH shouldn't result in EDGE_ABNORMAL ... > > /* Strange flow, like a computed jump or exception handling. Usually > this means that the edge cannot be split. */ > DEF_EDGE_FLAG(ABNORMAL, 1) > > rtl_make_eh_edge does set it for EH. And even more, see EDGE_EH: ``` /* Exception edge. Exception handling edges represent possible control transfers from a trapping instruction to an exception handler. EH edges also have ABNORMAL set for the RTL CFG. */ DEF_EDGE_FLAG(EH, 3) ``` Specifically: "EH edges also have ABNORMAL set for the RTL CFG" :).