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

            Bug ID: 107215
           Summary: ICE in gfc_real2real and gfc_complex2complex
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Additional examples affect versions down to at least r5 :


$ cat z1.f90
program p
  double precision, parameter :: z = 1.0d0
  real :: y(1)
  complex :: x(1)
  x = [real :: -'1'] * z
  y = z * [real :: -'1']
  x = [real :: -(.true.)] * z
  y = z * [real :: -(.true.)]
end


$ cat z2.f90
program p
  double precision, parameter :: z = 1.0d0
  real :: y(1)
  complex :: x(1)
  x = [complex :: -'1'] * z
  y = z * [complex :: -'1']
  x = [complex :: -(.true.)] * z
  y = z * [complex :: -(.true.)]
end


$ gfortran-13-20221009 -c z1.f90
f951: internal compiler error: Segmentation fault
0xd93caf crash_signal
        ../../gcc/toplev.cc:314
0x77ecb7 gfc_real2real(gfc_expr*, int)
        ../../gcc/fortran/arith.cc:2201
0x8526c2 gfc_convert_constant(gfc_expr*, bt, int)
        ../../gcc/fortran/simplify.cc:8762
#...


$ gfortran-13-20221009 -c z2.f90
f951: internal compiler error: Segmentation fault
0xd93caf crash_signal
        ../../gcc/toplev.cc:314
0x77f421 gfc_complex2complex(gfc_expr*, int)
        ../../gcc/fortran/arith.cc:2444
0x8526c2 gfc_convert_constant(gfc_expr*, bt, int)
        ../../gcc/fortran/simplify.cc:8762
0x7c9a3b do_simplify
        ../../gcc/fortran/intrinsic.cc:4658
0x7d5501 gfc_convert_type_warn(gfc_expr*, gfc_typespec*, int, int, bool)
        ../../gcc/fortran/intrinsic.cc:5384
0x7b7958 gfc_type_convert_binary(gfc_expr*, int)
        ../../gcc/fortran/expr.cc:985
0x77c317 eval_intrinsic
        ../../gcc/fortran/arith.cc:1606
0x7eed8c match_add_operand
        ../../gcc/fortran/matchexp.cc:392
0x7eef3c match_level_2
        ../../gcc/fortran/matchexp.cc:480
0x7ef092 match_level_3
        ../../gcc/fortran/matchexp.cc:551
0x7ef184 match_level_4
        ../../gcc/fortran/matchexp.cc:599
0x7ef184 match_and_operand
        ../../gcc/fortran/matchexp.cc:693
0x7ef372 match_or_operand
        ../../gcc/fortran/matchexp.cc:722
0x7ef442 match_equiv_operand
        ../../gcc/fortran/matchexp.cc:765
0x7ef514 match_level_5
        ../../gcc/fortran/matchexp.cc:811
0x7ee8e1 gfc_match_expr(gfc_expr**)
        ../../gcc/fortran/matchexp.cc:870
0x7e5ec0 gfc_match(char const*, ...)
        ../../gcc/fortran/match.cc:1131
0x7e7c89 gfc_match_assignment()
        ../../gcc/fortran/match.cc:1330
0x812e40 match_word
        ../../gcc/fortran/parse.cc:67
0x812e40 decode_statement
        ../../gcc/fortran/parse.cc:363

Reply via email to