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

            Bug ID: 125650
           Summary: ice in gfc_conv_expr_op, at fortran/trans-expr.cc:4390
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

For this F90 source code:

MODULE mod1
IMPLICIT NONE

INTERFACE OPERATOR( + )
  MODULE PROCEDURE contt
END INTERFACE

CONTAINS

FUNCTION contt(dd1,dd2)
IMPLICIT NONE
CHARACTER(LEN = 8) :: contt
CHARACTER(LEN = 3),INTENT(IN) :: dd1
CHARACTER(LEN = 5),INTENT(IN) :: dd2
contt = dd1 // dd2 
END FUNCTION

END MODULE
PROGRAM main
USE mod1
IMPLICIT NONE

CHARACTER(LEN = 3) :: arg1 = 'aaa'
CHARACTER(LEN =5) :: arg2 = 'ccccc'

ASSOCIATE(aa => arg1 , bb => arg2 , cc => arg1 + arg2)
  IF(cc(3:5) .EQ. 'acc') THEN
    PRINT*,'pass'
  ELSE
    PRINT*,101 
 END IF
END ASSOCIATE

END PROGRAM

compiled by recent gfortran, does this:

~/gcc/results/bin/gfortran -c -w
/home/dcb42/fujitsu/trunk/Fortran/0283/0283_0557.f90
/home/dcb42/fujitsu/trunk/Fortran/0283/0283_0557.f90:28:5:

   28 |   IF(cc(3:5) .EQ. 'acc') THEN
      |     1
internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.cc:4390
0x2031697 internal_error
       
/home/dcb42/gcc/working/gcc/../../trunk/gcc/diagnostic-global-context.cc:787
0x203b8eb fancy_abort
        /home/dcb42/gcc/working/gcc/../../trunk/gcc/diagnostics/context.cc:1813
0x57f269 gfc_conv_expr_op
        /home/dcb42/gcc/working/gcc/../../trunk/gcc/fortran/trans-expr.cc:4390

The code is from the Fujitsu compiler test suite on github.com.

I only have compilers going back to 12.1, and they all don't like it:

$ ~/gcc/results.12.1.0/bin/gfortran -c -w
/home/dcb42/fujitsu/trunk/Fortran/0283/0283_0557.f90
/home/dcb42/fujitsu/trunk/Fortran/0283/0283_0557.f90:28:5:

   28 |   IF(cc(3:5) .EQ. 'acc') THEN
      |     1
internal compiler error: in gfc_conv_expr_op, at fortran/trans-expr.cc:3885
0x551f95 gfc_conv_expr_op
       
/home/dcb42/gcc/working/gcc/../../gcc-12.1.0/gcc/fortran/trans-expr.cc:3885

$ ~/gcc/results.12.1.0/bin/gfortran -v
Using built-in specs.
COLLECT_GCC=/home/dcb42/gcc/results.12.1.0/bin/gfortran
COLLECT_LTO_WRAPPER=/home/dcb42/gcc/results.12.1.0/libexec/gcc/x86_64-pc-linux-gnu/12.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-12.1.0/configure
--prefix=/home/dcb42/gcc/results.12.1.0 --disable-bootstrap --disable-doc
--disable-multilib --with-pkgversion=12.1.0
--enable-checking=df,extra,fold,rtl,yes --enable-languages=c,c++,fortran
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.1.0 (12.1.0) 
foundBugs $ 

For reference, flang is happy with the code:

foundBugs $ flang -c -w
/home/dcb42/fujitsu/trunk/Fortran/0283/0283_0557.f90foundBugs 
$

Reply via email to