[Bug fortran/14067] New: [gfortran] ICE when character data statement overflows declared size
bdavis9659 at comcast dot net
gcc-bugzilla@gcc.gnu.org
Sat Feb 7 20:51:00 GMT 2004
A character string provided in a data statement that is larger than declared
variable size causes an ICE.
This code is not standard conforming.
gfortran should either:
a> Issue an error that the character string in the data statement cannot be
larger than the variable size. { is smaller OK? or does it have to be exact for
character variables ? i dunno but it seems reasonable }
b> Issue a warning and truncate the string.
g77 does half of option (b). g77 misses the warning, but does not do any harm.
To duplicate:
$ cat bigstring.f
PROGRAM GNEXDATA
CHARACTER*31 GNCRMESS
C 1 2 3 4
C 1234567890123456789012345678901234567890
DATA GNCRMESS/' *** COASTAL RADAR NOT LOADED *** '/
PRINT*,GNCRMESS
RETURN
END
$ /usr/local/bin/gfortran -static bigstring.f
f951: ../../gcc/gcc/fortran/trans-const.c:109: gfc_conv_string_init: Assertion
`len >= slen' failed.
bigstring.f: In function `MAIN__':
bigstring.f:8: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
$ g77 bigstring.f
$ ./a.out
*** COASTAL RADAR NOT LOA
$ /usr/local/bin/gfortran --version
GNU Fortran 95 (GCC 3.5-tree-ssa 20040207 (merged 20040126))
Copyright (C) 2003 Free Software Foundation, Inc.
--
Summary: [gfortran] ICE when character data statement overflows
declared size
Product: gcc
Version: tree-ssa
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bdavis9659 at comcast dot net
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14067
More information about the Gcc-bugs
mailing list