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

            Bug ID: 88945
           Summary: ICE in fold_convert_loc in FRE when using
                    -fdump-tree-fre-details
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---

It's probably an older issue, but was exposed in r257233:

$ cat /tmp/task2.f90
  call a
contains
  subroutine b (c, d, e, f, g, h, i, j, k, l)
    character  c
    character  d
    integer, dimension (l) :: e
    integer, dimension (l) :: f
    character (*), dimension (l) :: g
    character  h
    real, dimension (:, :, :) :: i
    double precision, dimension (:, :, :) :: j
    integer, dimension (:, :, :) :: k
  g = ''
  end  
  subroutine a
    character  c
    character  d
    integer, dimension (7) :: e
    integer, dimension (7) :: f
    character g
    character h
    real, dimension (5, 6, 7) :: i
    double precision, dimension (6, 6, 7) :: j
    integer, dimension (5, 7, 6) :: k
    call b (c, d, e, f, g, h, i, j, k, 7)
  end  
end

$ ./xgcc -B. /tmp/task2.f90 -c -O -fdump-tree-fre-details
during GIMPLE pass: fre
dump file: task2.f90.033t.fre1
xgcc: internal compiler error: Segmentation fault signal terminated program
f951
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.

Program received signal SIGSEGV, Segmentation fault.
0x0000000000ab00c2 in fold_convert_loc (loc=49248, type=<integer_type
0x7ffff6b68000 sizetype>, arg=<ssa_name 0x7ffff6d41048>) at
/home/marxin/Programming/gcc/gcc/fold-const.c:2400
2400          || TREE_CODE (orig) == ERROR_MARK)
(gdb) bt
#0  0x0000000000ab00c2 in fold_convert_loc (loc=49248, type=<integer_type
0x7ffff6b68000 sizetype>, arg=<ssa_name 0x7ffff6d41048>) at
/home/marxin/Programming/gcc/gcc/fold-const.c:2400
#1  0x000000000105e12c in array_ref_element_size (exp=<optimized out>) at
/home/marxin/Programming/gcc/gcc/tree.c:13462
#2  0x0000000000e7a295 in dump_generic_node (pp=0x7fffffffd500, node=<array_ref
0x7ffff6b5cf88>, spc=0, flags=TDF_BLOCKS, is_stmt=<optimized out>) at
/home/marxin/Programming/gcc/gcc/tree-pretty-print.c:2154
#3  0x0000000000e7e656 in dump_generic_node (pp=pp@entry=0x7fffffffd500,
node=<addr_expr 0x7ffff6d33880>, spc=spc@entry=0, flags=flags@entry=TDF_BLOCKS,
is_stmt=is_stmt@entry=false) at
/home/marxin/Programming/gcc/gcc/tree-pretty-print.c:2586
#4  0x0000000000b374bd in dump_unary_rhs (flags=TDF_BLOCKS, spc=0,
gs=<optimized out>, buffer=0x7fffffffd500) at
/home/marxin/Programming/gcc/gcc/gimple-pretty-print.c:408
#5  dump_gimple_assign (buffer=0x7fffffffd500, gs=<optimized out>, spc=0,
flags=TDF_BLOCKS) at /home/marxin/Programming/gcc/gcc/gimple-pretty-print.c:628
#6  0x0000000000b38d6a in gimple_dump_bb_buff (flags=TDF_BLOCKS, indent=0,
bb=<basic_block 0x7ffff6b5b888 (7)>, buffer=0x7fffffffd500) at
/home/marxin/Programming/gcc/gcc/gimple-pretty-print.c:2854
#7  gimple_dump_bb (file=<optimized out>, bb=<basic_block 0x7ffff6b5b888 (7)>,
indent=0, flags=TDF_BLOCKS) at
/home/marxin/Programming/gcc/gcc/gimple-pretty-print.c:2878
#8  0x0000000000979eb5 in dump_bb (outf=0x232dd50, bb=bb@entry=<basic_block
0x7ffff6b5b888 (7)>, indent=indent@entry=0, flags=flags@entry=TDF_BLOCKS) at
/home/marxin/Programming/gcc/gcc/cfghooks.c:282
#9  0x0000000000def2b6 in remove_bb (bb=<basic_block 0x7ffff6b5b888 (7)>) at
/home/marxin/Programming/gcc/gcc/tree-cfg.c:2261
#10 0x000000000097a58a in delete_basic_block (bb=bb@entry=<basic_block
0x7ffff6b5b888 (7)>) at /home/marxin/Programming/gcc/gcc/cfghooks.c:599
#11 0x0000000000e0a179 in cleanup_control_flow_pre () at
/home/marxin/Programming/gcc/gcc/tree-cfgcleanup.c:785
#12 0x0000000000e0a5ba in cleanup_tree_cfg_noloop () at
/home/marxin/Programming/gcc/gcc/tree-cfgcleanup.c:881
#13 cleanup_tree_cfg () at
/home/marxin/Programming/gcc/gcc/tree-cfgcleanup.c:989
#14 0x0000000000ce5c0d in execute_function_todo (fn=0x7ffff6d21160,
data=<optimized out>) at /home/marxin/Programming/gcc/gcc/passes.c:1930
#15 0x0000000000ce6aaf in execute_todo (flags=96) at
/home/marxin/Programming/gcc/gcc/passes.c:2031
#16 0x0000000000ce8cc7 in execute_one_pass (pass=<opt_pass* 0x22c8700
"fre"(38)>) at /home/marxin/Programming/gcc/gcc/passes.c:2520
#17 0x0000000000ce9198 in execute_pass_list_1 (pass=<opt_pass* 0x22c8700
"fre"(38)>) at /home/marxin/Programming/gcc/gcc/passes.c:2569
#18 0x0000000000ce91aa in execute_pass_list_1 (pass=<opt_pass* 0x22c83e0
"early_optimizations"(31)>) at /home/marxin/Programming/gcc/gcc/passes.c:2570
#19 0x0000000000ce91e9 in execute_pass_list (fn=0x7ffff6d21160, pass=<optimized
out>) at /home/marxin/Programming/gcc/gcc/passes.c:2580
#20 0x0000000000cf1438 in do_per_function_toporder (callback=0xce91d0
<execute_pass_list(function*, opt_pass*)>, data=0x22c8260) at
/home/marxin/Programming/gcc/gcc/passes.c:1705
#21 0x0000000000cf1473 in execute_ipa_pass_list (pass=<opt_pass* 0x22c8200
"opt_local_passes"(27)>) at /home/marxin/Programming/gcc/gcc/passes.c:2928
#22 0x00000000009ae9a3 in ipa_passes () at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2482
#23 symbol_table::compile (this=0x7ffff6b56100) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2618
#24 0x00000000009b0d3d in symbol_table::compile (this=0x7ffff6b56100) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2863
#25 symbol_table::finalize_compilation_unit (this=0x7ffff6b56100) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2863
#26 0x0000000000dbca8b in compile_file () at
/home/marxin/Programming/gcc/gcc/toplev.c:481
#27 0x00000000007a8e1a in do_compile () at
/home/marxin/Programming/gcc/gcc/toplev.c:2176
#28 toplev::main (this=this@entry=0x7fffffffdabe, argc=<optimized out>,
argc@entry=15, argv=<optimized out>, argv@entry=0x7fffffffdbb8) at
/home/marxin/Programming/gcc/gcc/toplev.c:2311
#29 0x00000000007ac46b in main (argc=15, argv=0x7fffffffdbb8) at
/home/marxin/Programming/gcc/gcc/main.c:39

Reply via email to