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

            Bug ID: 88099
           Summary: ICE in maybe_legitimize_operand, at optabs.c:7170
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

With -fsanitize=undefined or a test version (--enable-checking=yes) :
(n2 is not a function reference due to missing "()", and not initialized)


$ cat z1.f90
module m
contains
   function n1()
      n1 = 3
      n1 = n1 + n2
   end
   function n2()
      n2 = 4
   end
end


$ gfortran-9-20181118 -c z1.f90 -O2
$ gfortran-9-20181118 -c z1.f90 -g -O0 -Wall -Wextra -fcheck=all
$
$ gfortran-9-20181118 -c z1.f90 -fsanitize=undefined
during RTL pass: expand
z1.f90:5:0:

    5 |       n1 = n1 + n2
      |
internal compiler error: in maybe_legitimize_operand, at optabs.c:7170
0xa4098a maybe_legitimize_operand
        ../../gcc/optabs.c:7169
0xa4098a maybe_legitimize_operands(insn_code, unsigned int, unsigned int,
expand_operand*)
        ../../gcc/optabs.c:7298
0xa40b89 maybe_gen_insn(insn_code, unsigned int, expand_operand*)
        ../../gcc/optabs.c:7317
0xa43ed8 maybe_expand_insn(insn_code, unsigned int, expand_operand*)
        ../../gcc/optabs.c:7360
0x94ad5f expand_addsub_overflow
        ../../gcc/internal-fn.c:1005
0x9500e7 expand_UBSAN_CHECK_ADD
        ../../gcc/internal-fn.c:2193
0x77bd87 expand_call_stmt
        ../../gcc/cfgexpand.c:2622
0x77bd87 expand_gimple_stmt_1
        ../../gcc/cfgexpand.c:3650
0x77bd87 expand_gimple_stmt
        ../../gcc/cfgexpand.c:3809
0x77dc87 expand_gimple_basic_block
        ../../gcc/cfgexpand.c:5845
0x7832c6 execute
        ../../gcc/cfgexpand.c:6450


$ gfortran-9-20181118-chk -c z1.f90
z1.f90:3:0:

    3 |    function n1()
      |
Error: invalid (pointer) operands to plus/minus
_2 = __result_n1.0_1 + n2;
z1.f90:3:0: internal compiler error: verify_gimple failed
0xcccbdd verify_gimple_in_seq(gimple*)
        ../../gcc/tree-cfg.c:5082
0x9e0a45 gimplify_body(tree_node*, bool)
        ../../gcc/gimplify.c:13636
0x9e0d34 gimplify_function_tree(tree_node*)
        ../../gcc/gimplify.c:13726
0x82b6f7 cgraph_node::analyze()
        ../../gcc/cgraphunit.c:667
0x82e8e9 analyze_functions
        ../../gcc/cgraphunit.c:1126
0x82f9c2 symbol_table::finalize_compilation_unit()
        ../../gcc/cgraphunit.c:2835

Reply via email to