This is why NIST 908 is failing (reduced testcase).

$ cat read-internal-array.f90
program main
  character(len=20) :: un(2)
  real :: a
  un(1) = '3.14'
  un(2) = ''
  read(unit=un,fmt='(G12.5)') a
end program main
$ gfortran -v
Reading specs from /home/ig25/lib/gcc/i686-pc-linux-gnu/4.0.0/specs
Configured with: ../gcc/configure --prefix=/home/ig25
--enable-languages=c,c++,f95 --disable-shared
Thread model: posix
gcc version 4.0.0 20041204 (experimental)
$ gfortran read-internal-array.f90
read-internal-array.f90: In function 'MAIN__':
read-internal-array.f90:5: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

$ gdb ~/libexec/gcc/i686-pc-linux-gnu/4.0.0/f951
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux"...Using host libthread_db library
"/lib/tls/libthread_db.so.1".

(gdb) r read-internal-array.f90
Starting program: /home/ig25/libexec/gcc/i686-pc-linux-gnu/4.0.0/f951
read-internal-array.f90
 MAIN__

Program received signal SIGSEGV, Segmentation fault.
0x08096c40 in gfc_conv_scalarized_array_ref (se=0xbffff3b4, ar=0x860269c)
    at ../../gcc/gcc/fortran/trans-array.c:1617
1617        n = se->loop->order[0];
(gdb) bt
#0  0x08096c40 in gfc_conv_scalarized_array_ref (se=0xbffff3b4, ar=0x860269c)
    at ../../gcc/gcc/fortran/trans-array.c:1617
#1  0x08096cfe in gfc_conv_array_ref (se=0xbffff3b4, ar=0x860269c)
    at ../../gcc/gcc/fortran/trans-array.c:1661
#2  0x080a5f4a in gfc_conv_expr (se=0xbffff3b4, expr=0x8602098)
    at ../../gcc/gcc/fortran/trans-expr.c:376
#3  0x080b0367 in set_string (block=0xbffff464, postblock=0xbffff45c,
    var=0x40375c3c, var_len=0x40375cb0, e=0x8602098)
    at ../../gcc/gcc/fortran/trans-io.c:402
#4  0x080b148d in build_dt (function=0x854f2f4, code=Variable "code" is not
available.
)
    at ../../gcc/gcc/fortran/trans-io.c:966
#5  0x080949b3 in gfc_trans_code (code=0x8602958)
    at ../../gcc/gcc/fortran/trans.c:587
#6  0x080a369c in gfc_generate_function_code (ns=0x86017a8)
    at ../../gcc/gcc/fortran/trans-decl.c:2217
#7  0x08094b2a in gfc_generate_code (ns=0x86017a8)
    at ../../gcc/gcc/fortran/trans.c:679
#8  0x0807b621 in gfc_parse_file () at ../../gcc/gcc/fortran/parse.c:2628
#9  0x08091c45 in gfc_be_parse_file (set_yydebug=0)
    at ../../gcc/gcc/fortran/f95-lang.c:266
#10 0x083a7485 in toplev_main (argc=0, argv=0xbffff6c4)
    at ../../gcc/gcc/toplev.c:992
#11 0x400757f8 in __libc_start_main () from /lib/tls/libc.so.6
#12 0x0804ad61 in _start () at ../sysdeps/i386/elf/start.S:102
(gdb)

-- 
           Summary: ICE on reading from internal file character array
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: Thomas dot Koenig at online dot de
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18834

Reply via email to