[Bug fortran/87923] ICE in gfc_widechar_to_char, at fortran/scanner.c:198
gscfq@t-online.de
gcc-bugzilla@gcc.gnu.org
Tue Feb 4 17:57:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87923
G. Steinmetz <gscfq@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 <gscfq@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
More information about the Gcc-bugs
mailing list