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

            Bug ID: 109948
           Summary: ICE(segfault) in gfc_expression_rank() from
                    gfc_op_rank_conformable()
           Product: gcc
           Version: 13.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rimvydas.jas at gmail dot com
  Target Milestone: ---

Bisected down to recent g:611be07e48956c8b7371eb580eef124990114fd3

$ cat test_associate.f90
subroutine foo(y, x)
implicit none
type tlap
  real,    allocatable :: z(:)
end type tlap
type(tlap) :: y
real :: x(:)
associate(z=>y%z)

if (getpid() == 1) then
  where ( z < 0.0 ) x(:) = z(:)
else
  where ( z < 0.0 ) x(:) = z(:)
endif

end associate
end subroutine foo

$ gfortran -O1 -c test_associate.f90
f951: internal compiler error: Segmentation fault
0xd362af crash_signal
        /data/g13/gcc/toplev.cc:314
0x2aaaaabfcecf ???
       
/tmp/glibc-2.37/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7ca895 gfc_expression_rank(gfc_expr*)
        /data/g13/gcc/fortran/resolve.cc:5643
0x7caa44 gfc_op_rank_conformable(gfc_expr*, gfc_expr*)
        /data/g13/gcc/fortran/resolve.cc:5676
0x71228c eval_intrinsic
        /data/g13/gcc/fortran/arith.cc:1669
0x789edc match_level_4
        /data/g13/gcc/fortran/matchexp.cc:646
0x789edc match_and_operand
        /data/g13/gcc/fortran/matchexp.cc:693
0x789f66 match_or_operand
        /data/g13/gcc/fortran/matchexp.cc:722
0x78a076 match_equiv_operand
        /data/g13/gcc/fortran/matchexp.cc:765
0x78a188 match_level_5gfc_op_rank_conformable(
        /data/g13/gcc/fortran/matchexp.cc:811
0x7892e4 gfc_match_expr(gfc_expr**)
        /data/g13/gcc/fortran/matchexp.cc:870
0x7bf2e0 match_actual_arg
        /data/g13/gcc/fortran/primary.cc:1688
0x7c0c88 gfc_match_actual_arglist(int, gfc_actual_arglist**, bool)
        /data/g13/gcc/fortran/primary.cc:1953
0x7c3455 gfc_match_rvalue(gfc_expr**)
        /data/g13/gcc/fortran/primary.cc:3695
0x7894fe match_primary
        /data/g13/gcc/fortran/matchexp.cc:157
0x7894fe match_level_1
        /data/g13/gcc/fortran/matchexp.cc:211
0x7894fe match_mult_operand
        /data/g13/gcc/fortran/matchexp.cc:267
0x7897c8 match_add_operand
        /data/g13/gcc/fortran/matchexp.cc:356
0x789a9c match_level_2
        /data/g13/gcc/fortran/matchexp.cc:480
0x789c56 match_level_3
        /data/g13/gcc/fortran/matchexp.cc:551
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to