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

--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, found it.  The problem is in EH table entries like:

        .uleb128 .LEHB8-.LCOLDB1
        .uleb128 .LEHE8-.LEHB8
        .uleb128 .L16-.LCOLDB1
        .uleb128 0x1

Now the third entry is landing pad.  If L16 happens to be the first label of
cold section then .L16-.LCOLDB1 == 0. In this case it is misinterpreted by the
runtime as no landing pad and EH is not delivered.

I suppose we can always arrange cold sections to not start by EH receiver...

Honza

Reply via email to