Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 15966
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: fengwang@gcc.gnu.org
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Mart Rentmeester <Mart.Rentmeester@nn-online.org>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 15966 depends on: Show dependency tree
Show dependency graph
Bug 15966 blocks: 18834 19276 19292

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: 2005-06-18 20:40 Opened: 2004-06-12 22:03
This snippet of code is a f95-ification of old legacy code that
generates an ICE/segmentation fault on this particular kind
of internal write. Other compilers accept it. 


troogle> gfortran -c -v !$
gfortran -c -v n15.f95
Reading specs from /OPT/32/gcc-2004-06-09/lib/gcc/hppa2.0w-hp-hpux11.11/3.5.
0/specs
Configured with: ../configure --enable-languages=c,f95 
--prefix=/opt32/gcc-2004-06-09 --with-gmp=/opt32/gmp --with-gnu-as 
--with-as=/opt32/binutils/bin/as --enable-threads --disable-shared --disable-nls
Thread model: posix
gcc version 3.5.0 20040611 (experimental)
 /OPT/32/gcc-2004-06-09/libexec/gcc/hppa2.0w-hp-hpux11.11/3.5.0/f951 n15.f95 
-quiet -dumpbase n15.f95 -auxbase n15 -version -o /var/tmp//cc5B5831.s
GNU F95 version 3.5.0 20040611 (experimental) (hppa2.0w-hp-hpux11.11)
        compiled by GNU C version 3.5.0 20040611 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

n15.f95: In function `a':
n15.f95:7: internal compiler error: Segmentation fault



      subroutine a()

      implicit none
      integer         :: i
      character(100)  :: r(1)

      write(r,*) I

      end subroutine a

------- Comment #1 From Andrew Pinski 2004-06-13 09:11 -------
Confirmed, here is the backtrace:
#0  0x080a40e0 in gfc_conv_scalarized_array_ref (se=0xbffebfe0, ar=0x85a9884) at /home/gates/
pinskia/src/gnu/gcc/src/gcc/fortran/trans-array.c:1417
#1  0x080a418d in gfc_conv_array_ref (se=0xbffebfe0, ar=0x85a9884) at /home/gates/pinskia/src/
gnu/gcc/src/gcc/fortran/trans-array.c:1465
#2  0x08096bfc in gfc_conv_expr (se=0xbffebfe0, expr=0x85a9820) at /home/gates/pinskia/src/gnu/
gcc/src/gcc/fortran/trans-expr.c:327
#3  0x080a0ae7 in set_string (block=0xbffec058, postblock=0xbffec050, var=0x400ef414, 
var_len=0x400ef488, e=0x85a9820)
    at /home/gates/pinskia/src/gnu/gcc/src/gcc/fortran/trans-io.c:387
#4  0x080a1cf3 in build_dt (function=0x84f4ea0, code=Variable "code" is not available.
) at /home/gates/pinskia/src/gnu/gcc/src/gcc/fortran/trans-io.c:865
#5  0x0808d65d in gfc_trans_code (code=0x85a9b20) at /home/gates/pinskia/src/gnu/gcc/src/gcc/
fortran/trans.c:574
#6  0x08091a3d in gfc_generate_function_code (ns=0x85a8ec0) at /home/gates/pinskia/src/gnu/gcc/
src/gcc/fortran/trans-decl.c:2046
#7  0x0808d853 in gfc_generate_code (ns=0x85a8ec0) at /home/gates/pinskia/src/gnu/gcc/src/gcc/
fortran/trans.c:651
#8  0x080735a7 in gfc_parse_file () at /home/gates/pinskia/src/gnu/gcc/src/gcc/fortran/parse.c:2477
#9  0x0808a06c in gfc_be_parse_file (set_yydebug=0) at /home/gates/pinskia/src/gnu/gcc/src/gcc/
fortran/f95-lang.c:266
#10 0x0838c4a8 in toplev_main (argc=0, argv=0xbffec304) at /home/gates/pinskia/src/gnu/gcc/src/
gcc/toplev.c:1666
#11 0x420174d9 in __libc_start_main () from /lib/i686/libc.so.6
#12 0x0804b071 in _start ()

------- Comment #2 From Andrew Pinski 2004-07-14 15:09 -------
*** Bug 16535 has been marked as a duplicate of this bug. ***

------- Comment #3 From Tobias Schlüter 2004-09-27 14:52 -------
*** Bug 16124 has been marked as a duplicate of this bug. ***

------- Comment #4 From Thomas Koenig 2004-12-05 20:03 -------
*** Bug 18834 has been marked as a duplicate of this bug. ***

------- Comment #5 From Paul Thomas 2004-12-10 10:50 -------
Note that this compiles and runs OK

       subroutine a()
       implicit none
       integer         :: i
       character(100)  :: r      !! eliminate dimension => works
       write(r,*) I
       end subroutine a


------- Comment #6 From Andrew Pinski 2005-02-18 15:23 -------
*** Bug 20057 has been marked as a duplicate of this bug. ***

------- Comment #7 From Francois-Xavier Coudert 2005-04-14 07:49 -------
*** Bug 20990 has been marked as a duplicate of this bug. ***

------- Comment #8 From Francois-Xavier Coudert 2005-04-14 07:50 -------
Same thing happens with read:
      integer i
      character*4 c(1)
      read (c,fmt='(A4)') i
      end

Program received signal SIGSEGV, Segmentation fault.
0x080a760b in gfc_conv_scalarized_array_ref (se=0xbffff740, ar=0x87b48bc)
    at ../../../gcc/gcc/fortran/trans-array.c:1578
1576      info = &se->ss->data.info;
1577      if (ar)
1578        n = se->loop->order[0];
1579      else
1580        n = 0;

Seeing the number of duplicates for this one, I'm sure we want to get it on our
Ten Most Wanted list.

------- Comment #9 From Andrew Pinski 2005-05-05 23:26 -------
*** Bug 18781 has been marked as a duplicate of this bug. ***

------- Comment #10 From Andrew Pinski 2005-05-05 23:26 -------
*** Bug 21406 has been marked as a duplicate of this bug. ***

------- Comment #11 From Andrew Pinski 2005-06-11 21:54 -------
*** Bug 22021 has been marked as a duplicate of this bug. ***

------- Comment #12 From Francois-Xavier Coudert 2005-06-18 20:17 -------
*** Bug 21902 has been marked as a duplicate of this bug. ***

------- Comment #13 From Francois-Xavier Coudert 2005-06-18 20:40 -------
Well, this one should be so difficult. I think the tweak should be in io.c:

/* Resolve everything in a gfc_dt structure.  */
try gfc_resolve_dt (gfc_dt * dt)

There is some code called "Sanity checks on data transfer statements", where we
might check for the case where the io_unit is a character array, and then
substitute the code for its lower element.

Since, I'm really not used to the guts of the front-end, I can't do more than
that (and I'm not sure this analysis is correct), but this doesn't seem so
difficult...

------- Comment #14 From Francois-Xavier Coudert 2005-06-18 20:58 -------
*** Bug 20843 has been marked as a duplicate of this bug. ***

------- Comment #15 From Andrew Pinski 2005-06-23 12:48 -------
*** Bug 22160 has been marked as a duplicate of this bug. ***

------- Comment #16 From CVS Commits 2005-07-07 07:55 -------
Subject: Bug 15966

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	fengwang@gcc.gnu.org	2005-07-07 07:55:00

Modified files:
	libgfortran    : ChangeLog 
	gcc/fortran    : ChangeLog arith.c expr.c intrinsic.c io.c 
	                 misc.c primary.c simplify.c trans-const.c 
	                 trans-io.c arith.h gfortran.h 
	gcc/testsuite  : ChangeLog 
	libgfortran/io : transfer.c 
Added files:
	gcc/testsuite/gfortran.dg: hollerith.f90 hollerith2.f90 
	                           hollerith3.f90 hollerith4.f90 
	                           hollerith_f95.f90 
	                           hollerith_legacy.f90 
	gcc/testsuite/gfortran.dg/g77: cpp4.F 

Log message:
	For the 60th anniversary of Chinese people¡¯s Anti-Japan war victory.
	
	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
	
	PR fortran/16531
	PR fortran/15966
	PR fortran/18781
	* arith.c (gfc_hollerith2int, gfc_hollerith2real,
	gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
	New functions.
	(eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
	* arith.h (gfc_hollerith2int, gfc_hollerith2real,
	gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
	Add prototypes.
	* expr.c (free_expr0): Free memery allocated for Hollerith constant.
	(gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
	(gfc_check_assign): Enable conversion from Hollerith to other.
	* gfortran.h (bt): Add BT_HOLLERITH.
	(gfc_expr): Add from_H flag.
	* intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
	(add_conversions): Add conversions from Hollerith constant to other.
	(do_simplify): Don't simplify if  Hollerith constant arguments exist.
	* io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
	* misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
	(gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
	* primary.c (match_hollerith_constant): New function.
	(gfc_match_literal_constant): Add match Hollerith before Integer.
	* simplify.c (gfc_convert_constant): Add conversion from Hollerith
	to other.
	* trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
	convert Hollerith constant to tree.
	* trans-io.c (gfc_convert_array_to_string): Get array's address and
	length to set string expr.
	(set_string): Deal with array assigned Hollerith constant and character
	array.
	* gfortran.texi: Document Hollerith constants as extention support.
	
	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
	
	PR fortran/16531
	PR fortran/15966
	PR fortran/18781
	* gfortran.dg/hollerith.f90: New.
	* gfortran.dg/hollerith2.f90: New.
	* gfortran.dg/hollerith3.f90: New.
	* gfortran.dg/hollerith4.f90: New.
	* gfortran.dg/hollerith_f95.f90: New.
	* gfortran.dg/hollerith_legacy.f90: New.
	* gfortran.dg/g77/cpp4.F: New. Port from g77.
	
	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
	
	PR fortran/16531
	* io/transfer.c (formatted_transfer): Enable FMT_A on other types to
	support Hollerith constants.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&r1=1.255&r2=1.256
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&r1=1.485&r2=1.486
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/arith.c.diff?cvsroot=gcc&r1=1.29&r2=1.30
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/expr.c.diff?cvsroot=gcc&r1=1.26&r2=1.27
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/intrinsic.c.diff?cvsroot=gcc&r1=1.51&r2=1.52
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/io.c.diff?cvsroot=gcc&r1=1.27&r2=1.28
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/misc.c.diff?cvsroot=gcc&r1=1.9&r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/primary.c.diff?cvsroot=gcc&r1=1.28&r2=1.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/simplify.c.diff?cvsroot=gcc&r1=1.29&r2=1.30
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-const.c.diff?cvsroot=gcc&r1=1.28&r2=1.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-io.c.diff?cvsroot=gcc&r1=1.37&r2=1.38
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/arith.h.diff?cvsroot=gcc&r1=1.6&r2=1.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcc&r1=1.74&r2=1.75
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5732&r2=1.5733
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gcc&r1=1.46&r2=1.47
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith2.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith3.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith4.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith_f95.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith_legacy.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/cpp4.F.diff?cvsroot=gcc&r1=NONE&r2=1.1


------- Comment #17 From fengwang@gcc.gnu.org 2005-07-07 10:04 -------
*** Bug 22342 has been marked as a duplicate of this bug. ***

------- Comment #18 From CVS Commits 2005-07-12 01:51 -------
Subject: Bug 15966

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-4_0-branch
Changes by:	fengwang@gcc.gnu.org	2005-07-12 01:50:48

Modified files:
	libgfortran    : ChangeLog 
	libgfortran/intrinsics: etime.c getcwd.c stat.c unlink.c 
	libgfortran/io : transfer.c unit.c 
	libgfortran/runtime: string.c 
	gcc/testsuite  : ChangeLog 
	gcc/fortran    : ChangeLog arith.c arith.h expr.c gfortran.h 
	                 gfortran.texi intrinsic.c io.c misc.c primary.c 
	                 simplify.c trans-const.c trans-io.c 
Added files:
	gcc/testsuite/gfortran.dg: hollerith.f90 hollerith2.f90 
	                           hollerith3.f90 hollerith4.f90 
	                           hollerith_f95.f90 
	                           hollerith_legacy.f90 
	gcc/testsuite/gfortran.dg/g77: cpp4.F 

Log message:
	2005-07-12  Feng Wang  <fengwang@nudt.edu.cn>
	
	Backport from the mainline:
	2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
	* trans-const.c (gfc_conv_constant_to_tree): Use correct tree
	type for COMPLEX constants.
	
	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
	PR fortran/16531
	PR fortran/15966
	PR fortran/18781
	* arith.c (gfc_hollerith2int, gfc_hollerith2real,
	gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
	New functions.
	(eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
	* arith.h (gfc_hollerith2int, gfc_hollerith2real,
	gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
	Add prototypes.
	* expr.c (free_expr0): Free memery allocated for Hollerith constant.
	(gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
	(gfc_check_assign): Enable conversion from Hollerith to other.
	* gfortran.h (bt): Add BT_HOLLERITH.
	(gfc_expr): Add from_H flag.
	* intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
	(add_conversions): Add conversions from Hollerith constant to other.
	(do_simplify): Don't simplify if  Hollerith constant arguments exist.
	* io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
	* misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
	(gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
	* primary.c (match_hollerith_constant): New function.
	(gfc_match_literal_constant): Add match Hollerith before Integer.
	* simplify.c (gfc_convert_constant): Add conversion from Hollerith
	to other.
	* trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
	convert Hollerith constant to tree.
	* trans-io.c (gfc_convert_array_to_string): Get array's address and
	length to set string expr.
	(set_string): Deal with array assigned Hollerith constant and character
	array.
	* gfortran.texi: Document Hollerith constants as extention support.
	
	2005-07-12  Feng Wang  <fengwang@nudt.edu.cn>
	
	Backport from the mainline:
	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
	PR fortran/16531
	PR fortran/15966
	PR fortran/18781
	* gfortran.dg/hollerith.f90: New.
	* gfortran.dg/hollerith2.f90: New.
	* gfortran.dg/hollerith3.f90: New.
	* gfortran.dg/hollerith4.f90: New.
	* gfortran.dg/hollerith_f95.f90: New.
	* gfortran.dg/hollerith_legacy.f90: New.
	* gfortran.dg/g77/cpp4.F: New. Port from g77.
	
	2005-07-12  Feng Wang  <fengwang@nudt.edu.cn>
	
	* runtime/string.c (compare0): Remove unused variable.
	* intrinsics/etime.c (etime_sub): Ditto.
	* intrinsics/getcwd.c (getcwd_i4_sub): Ditto.
	* intrinsics/stat.c (stat_i4_sub stat_i8_sub fstat_i4_sub
	fstat_i8_sub): Ditto.
	* intrinsics/unlink.c (unlink_i4_sub): Ditto.
	* io/unit.c (init_units): Ditto.
	
	Backport from mainline.
	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
	PR fortran/16531
	* io/transfer.c (formatted_transfer): Enable FMT_A on other types to
	support Hollerith constants.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith2.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith3.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith4.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith_f95.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/hollerith_legacy.f90.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/g77/cpp4.F.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.163.2.58&r2=1.163.2.59
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/intrinsics/etime.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5&r2=1.5.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/intrinsics/getcwd.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.3&r2=1.3.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/intrinsics/stat.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4.14.1&r2=1.4.14.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/intrinsics/unlink.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4&r2=1.4.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.32.2.7&r2=1.32.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unit.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.8.10.1&r2=1.8.10.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/string.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4.12.1&r2=1.4.12.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.267&r2=1.5084.2.268
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.335.2.86&r2=1.335.2.87
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/arith.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.22.2.2&r2=1.22.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/arith.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.4.36.1&r2=1.4.36.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/expr.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.23.2.2&r2=1.23.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.58.2.9&r2=1.58.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.texi.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.10.8.5&r2=1.10.8.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/intrinsic.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.44.2.5&r2=1.44.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/io.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.19.10.5&r2=1.19.10.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/misc.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.8&r2=1.8.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/primary.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.22.2.6&r2=1.22.2.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/simplify.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.19.2.4&r2=1.19.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-const.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.21.10.1&r2=1.21.10.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-io.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.33.2.3&r2=1.33.2.4


------- Comment #19 From Andrew Pinski 2005-07-12 04:26 -------
Fixed in 4.0.2 and above.

------- Comment #20 From Paul Thomas 2005-07-12 05:44 -------
(In reply to comment #19)
> Fixed in 4.0.2 and above.

Strictly speaking, pr15966 is fixed.  However, writing to array internal files
is still broken because no record length (aka character length) is being
transmitted.  This is a bug that comes up in a number of NIST tests (eg.
fm909.for tests 6, 7, 8, 10 & 22, 23, 25, 26.).

Jerry DeLisle and I are onto it.

With:

      implicit none
      integer         :: i(10),j
      character(12)  :: r(12)
      i = (/(j,j=1,10)/)
      write(r,'(5(2x,i4/)/5(3x,i6/))') i
      write(6,'(a12)') r
      end

Intel and g95 do this

[root@localhost mytests]# ./a.out
     1
     2
     3
     4
     5
             
        6
        7
        8
        9
       10

whilst gfortran does.... well, something else

[root@localhost mytests]# ./a.out
     1
2      3
  4      5
        6
      7
    8
  9        1
0
             

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug