This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ada/85638] [8/9 regression] build failure for Ada runtime with SJLJ exceptions on x86


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

--- Comment #12 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> I wonder why this doesn't seem to happen with DWARF-2 exception handling.

OK, the difference is that dw2_build_landing_pads does:

      lp->landing_pad = gen_label_rtx ();
      emit_label (lp->landing_pad);
      LABEL_PRESERVE_P (lp->landing_pad) = 1;

whereas sjlj_emit_dispatch_table does:

        lp->landing_pad = dispatch_label;

In other words, there is a landing pad per post-landing pad with DWARF-2 and a
common landing pad for all post-landing pads with SJLJ so, when you redirect
the edges from post-landing to landing pads, you lose the 1->1 mapping with
SJLJ.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]