This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/85638] [8/9 regression] build failure for Ada runtime with SJLJ exceptions on x86
- From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 04 May 2018 19:17:15 +0000
- Subject: [Bug ada/85638] [8/9 regression] build failure for Ada runtime with SJLJ exceptions on x86
- Auto-submitted: auto-generated
- References: <bug-85638-4@http.gcc.gnu.org/bugzilla/>
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.