https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125171
--- Comment #1 from Peeter Joot <peeterjoot at protonmail dot com> ---
running the version I built in the debugger:
fedora:/home/peeterjoot/br/brlang/cobol/samples/statements/program-linkage> gdb
/home/peeterjoot/repos/gcc-build/gcc/cobol1
Reading symbols from /home/peeterjoot/repos/gcc-build/gcc/cobol1...
(gdb) run exit-variants.cob -quiet -dialect ibm -dumpbase exit-variants.cob
-dumpbase-ext .cob -mlittle-endian -mabi=lp64 -version -freport-bug -dialect
ibm -o exit-variants.s
Starting program: /home/peeterjoot/repos/gcc-build/gcc/cobol1 exit-variants.cob
-quiet -dialect ibm -dumpbase exit-variants.cob -dumpbase-ext .cob
-mlittle-endian -mabi=lp64 -version -freport-bug -dialect ibm -o
exit-variants.s
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
GCC COBOL (GCC) version 16.1.0 (aarch64-unknown-linux-gnu)
compiled by GNU C version 16.1.0, GMP version 6.3.0, MPFR version
4.2.2, MPC version 1.3.1, isl version isl-0.24-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Downloading separate debug info for /usr/lib64/gconv/CP1252.so
Downloading 453.44 K separate debug info for
/home/peeterjoot/.cache/debuginfod_client/eb3afa7926882b8d847c337471c89d61e0a79209/debuginfo
Program received signal SIGSEGV, Segmentation fault.
main_block_label (label=0xffffe9a4d330, label_for_bb=0x3865060) at
../../gcc/gcc/tree-cfg.cc:1435
1435 tree main_label = label_for_bb[bb->index].label;
(gdb) bt
#0 main_block_label (label=0xffffe9a4d330, label_for_bb=0x3865060) at
../../gcc/gcc/tree-cfg.cc:1435
#1 cleanup_dead_labels () at ../../gcc/gcc/tree-cfg.cc:1620
#2 0x0000000000f21428 in build_gimple_cfg (seq=<optimized out>) at
../../gcc/gcc/tree-cfg.cc:204
#3 execute_build_cfg () at ../../gcc/gcc/tree-cfg.cc:332
#4 (anonymous namespace)::pass_build_cfg::execute (this=<optimized out>) at
../../gcc/gcc/tree-cfg.cc:373
#5 0x0000000000dd339c in execute_one_pass (pass=pass@entry=0x37ea1d0) at
../../gcc/gcc/passes.cc:2656
#6 0x0000000000dd3cb0 in execute_pass_list_1 (pass=0x37ea1d0) at
../../gcc/gcc/passes.cc:2769
#7 0x0000000000dd3d24 in execute_pass_list (fn=<optimized out>,
pass=<optimized out>) at ../../gcc/gcc/passes.cc:2780
#8 0x0000000000a1e39c in cgraph_node::analyze (this=this@entry=0xffffe9a0ddd0)
at ../../gcc/gcc/context.h:49
#9 0x0000000000a20920 in analyze_functions (first_time=first_time@entry=true)
at ../../gcc/gcc/cgraphunit.cc:1270
#10 0x0000000000a214c8 in symbol_table::finalize_compilation_unit
(this=0xffffe9a06000) at ../../gcc/gcc/cgraphunit.cc:2593
#11 0x0000000000edfc60 in compile_file () at ../../gcc/gcc/toplev.cc:482
#12 0x0000000000863100 in do_compile () at ../../gcc/gcc/toplev.cc:2225
#13 toplev::main (this=this@entry=0xffffffffe638, argc=<optimized out>,
argc@entry=17, argv=<optimized out>, argv@entry=0xffffffffe7b8)
at ../../gcc/gcc/toplev.cc:2389
#14 0x00000000008647f4 in main (argc=17, argv=0xffffffffe7b8) at
../../gcc/gcc/main.cc:39
(gdb) l
1430
1431 static tree
1432 main_block_label (tree label, label_record *label_for_bb)
1433 {
1434 basic_block bb = label_to_block (cfun, label);
1435 tree main_label = label_for_bb[bb->index].label;
1436
1437 /* label_to_block possibly inserted undefined label into the chain.
*/
1438 if (!main_label)
1439 {
(gdb) p bb
$1 = (basic_block) 0x0