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.

Reply via email to