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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-07-07

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

Program received signal SIGSEGV, Segmentation fault.
0x0000000000cc2c66 in cfg_layout_initialize (flags=0)
    at /home/rguenther/src/gcc2/gcc/cfgrtl.c:4478
4478          bb->flags |= BB_NON_LOCAL_GOTO_TARGET;
(gdb) l
4473
4474      /* Make sure that the targets of non local gotos are marked.  */
4475      for (x = nonlocal_goto_handler_labels; x; x = x->next ())
4476        {
4477          bb = BLOCK_FOR_INSN (x->insn ());
4478          bb->flags |= BB_NON_LOCAL_GOTO_TARGET;
4479        }

and bb is NULL.  We have

(note/s 38 0 0 "" NOTE_INSN_DELETED_LABEL 3)

as x->insn (), so whatever deleted this label forgot to adjust
nonlocal_goto_handler_labels (or wrongly deleted it).

Breakpoint 5, delete_insn (insn=0x7ffff6557780)
    at /home/rguenther/src/gcc2/gcc/cfgrtl.c:138
138       bool really_delete = true;
(gdb) p debug_rtx (insn)
(code_label/s 38 37 53 5 3 (nil) [3 uses])
(gdb) bt
#0  delete_insn (insn=0x7ffff6557780)
    at /home/rguenther/src/gcc2/gcc/cfgrtl.c:138
#1  0x0000000000cb8d09 in delete_insn_chain (start=0x7ffff6557780, 
    finish=0x7ffff6557e00, clear_bb=true)
    at /home/rguenther/src/gcc2/gcc/cfgrtl.c:273
#2  0x0000000000cb913f in rtl_delete_block (b=<basic_block 0x7ffff654f340 (5)>)
    at /home/rguenther/src/gcc2/gcc/cfgrtl.c:420
#3  0x0000000000ca542a in delete_basic_block (
    bb=<basic_block 0x7ffff654f340 (5)>)
    at /home/rguenther/src/gcc2/gcc/cfghooks.c:603
#4  0x000000000229b84b in delete_unreachable_blocks ()
    at /home/rguenther/src/gcc2/gcc/cfgcleanup.c:3058
#5  0x000000000229ba3c in cleanup_cfg (mode=16)
    at /home/rguenther/src/gcc2/gcc/cfgcleanup.c:3122
#6  0x0000000000c9cc0f in (anonymous namespace)::pass_expand::execute (
    this=0x38446a0, fun=0x7ffff669f000)
    at /home/rguenther/src/gcc2/gcc/cfgexpand.c:6974
#7  0x00000000012275f7 in execute_one_pass (
    pass=<opt_pass* 0x38446a0 "expand"(252)>)
    at /home/rguenther/src/gcc2/gcc/passes.c:2567

I don't know how nonlocal_goto_handler_labels is supposed to work.

Reply via email to