https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85627
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-valid-code
Priority|P3 |P2
Status|UNCONFIRMED |NEW
Last reconfirmed| |2018-05-03
Version|unknown |8.1.1
Target Milestone|--- |6.5
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
So one issue is the complex libcalls are ECF_NOTHROW. That's not really
expected with -fnon-call-exceptions. Fix required to
build_common_builtin_nodes, but it
would really need to be done per function given -fnon-call-exceptions is per
function. I guess just removing ECF_NOTHROW is good enough.
Then the issue is of course the loop over BBs in tree_lower_complex () does not
expect any CFG changes (like purging dead EH edges). We could delay this
and/or deal with BASIC_BLOCK_FOR_FN returning NULL for removed BBs.
Another issue is - after your patch - that we possibly miss some stmts if you
start to split blocks. That's already done by expand_complex_div_wide as well
so there's a pre-existing issue here.