https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88107
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2018-11-20
Target Milestone|--- |9.0
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. It looks like there's no "outer" region commoning things in general
so find_outermost_region_in_block / eh_region_outermost is misdesigned. The
EH "tree" looks like
(gdb) p debug_eh_tree (ifun)
Eh tree:
17 must_not_throw
16 must_not_throw
15 must_not_throw
14 must_not_throw
13 must_not_throw
12 must_not_throw
11 must_not_throw
10 must_not_throw
8 must_not_throw
7 must_not_throw
6 must_not_throw
5 must_not_throw
4 must_not_throw
3 must_not_throw
2 must_not_throw
1 must_not_throw
$20 = void
where the fns region_"tree"s root has only next_peer()s. So the design
of outlining part of an EH tree is bogus.