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

G. Steinmetz <gs...@t-online.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-invalid-code
            Summary|[DEC] ICE in                |ICE in
                   |gfc_widechar_to_char, at    |gfc_widechar_to_char, at
                   |fortran/scanner.c:198       |fortran/scanner.c:198

--- Comment #2 from G. Steinmetz <gs...@t-online.de> ---

The problem in general seems to be not DEC specific,
there are several more cases. The specifier needs to be
a scalar default character. Some variants are detected :


$ cat z2.f90
program p
   character(len=4, kind=4) :: c = 4_'null'
   open (1, access=char(1000,4))
   read (1, *, blank=4_'null')
   read (1, *, blank=c)
end


$ gfortran-10-20200202 -c z2.f90
z2.f90:3:19:

    3 |    open (1, access=char(1000,4))
      |                   1
Error: ACCESS tag at (1) must be a character string of default kind
z2.f90:4:21:

    4 |    read (1, *, blank=4_'null')
      |                     1
Error: BLANK tag at (1) must be a character string of default kind
z2.f90:5:21:

    5 |    read (1, *, blank=c)
      |                     1
Error: BLANK tag at (1) must be a character string of default kind



While following cases actually give an ICE :


$ cat z3.f90
program p
   open (1, blank=char(1000,4))
   open (2, decimal=char(1000,4))
   open (3, encoding=char(1000,4))
   open (4, round=char(1000,4))
   open (5, sign=char(1000,4))
end


$ cat z4.f90
program p
   read (1, blank=char(1000,4))
   read (1, delim=char(1000,4))
   read (1, pad=char(1000,4))
   read (1, round=char(1000,4))
   read (1, sign=char(1000,4))
end


$ cat z5.f90
program p
   write (1, blank=char(1000,4))
   write (1, delim=char(1000,4))
   write (1, pad=char(1000,4))
   write (1, round=char(1000,4))
   write (1, sign=char(1000,4))
end

Reply via email to