This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch, libgfortran] PR25594 LAPACK regression in schkbl.f


:ADDPATCH fortran:

The following patch fixes this regression in LAPACK. I could not reduce the test case. This patch also is a new fix for PR25419. The original fix for this caused the regression. I added some comments to clarify whats going on here. The original problem is that an initial comma for the first item of a list directed read was being skipped. This patch adds a check for that condition which is already being detected in eat_separator. The if-else clause in the patch here is the original code in place before the pr25419 patch was applied.

NIST Tested, LAPACK tested, regression tested. All OK. Original test case comma.f has already been committed to 4.2. OK for 4.2 and 4.1?

Regards,

Jerry

2005-12-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR libgfortran/25594
	PR libgfortran/25419
	* io/list_read.c (list_formatted_read_scalar): Test for comma to return
	a null value (default). Revert patch of 25419 on 2005-12-28.

Index: io/list_read.c
===================================================================
*** io/list_read.c      (revision 109123)
--- io/list_read.c      (working copy)
*************** list_formatted_read_scalar (st_parameter
*** 1353,1359 ****
        {                       /* Found a null value.  */
          eat_separator (dtp);
          dtp->u.p.repeat_count = 0;
!         goto cleanup;
        }

      }
--- 1353,1368 ----
        {                       /* Found a null value.  */
          eat_separator (dtp);
          dtp->u.p.repeat_count = 0;
!
!         /* eat_separator sets this flag if the separator was a comma */
!         if (dtp->u.p.comma_flag)
!           goto cleanup;
!
!         /* eat_separator sets this flag if the separator was a \n or \r */
!         if (dtp->u.p.at_eol)
!           finish_separator (dtp);
!         else
!           goto cleanup;
        }

}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]