From 2e014a85eac8227bae7ffac54d56ed9dc081dab6 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Fri, 12 Jan 2007 23:36:25 +0000 Subject: [PATCH] re PR fortran/30435 (Slash at end of input not recognized according to standard) 2007-01-12 Jerry DeLisle PR libgfortran/30435 * gfortran.dg/list_read_6.f90: New test. From-SVN: r120738 --- gcc/testsuite/ChangeLog | 6 ++++ gcc/testsuite/gfortran.dg/list_read_6.f90 | 42 +++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/list_read_6.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 15167d5c4e1..41ebdf22570 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-01-12 Jerry DeLisle + + PR libgfortran/30435 + * gfortran.dg/list_read_6.f90: New test. + 2007-01-12 Olga Golovanevsky * gcc.dg/torture/pr24750-1.c: Add prototype of free. @@ -50,6 +55,7 @@ * gcc.dg/fold-compare-2.c: New test case for fold_comparison. +>>>>>>> .r120737 2007-01-09 Brooks Moses * gfortran.dg/chkbits.f90: Added IBCLR tests; test calls diff --git a/gcc/testsuite/gfortran.dg/list_read_6.f90 b/gcc/testsuite/gfortran.dg/list_read_6.f90 new file mode 100644 index 00000000000..5bab50bab13 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/list_read_6.f90 @@ -0,0 +1,42 @@ +! { dg-do run } +! PR30435 Slash at end of input not recognized according to standard. +! Test case from PR by Steve Kargl. + +program t + integer a, b, c, d + ! This worked as expected + open(unit=10, file='tmp.dat') + write(10,*) '1 2 3 / 4' + rewind(10) + a = -1; b = -1; c = -1; d = -1; + read(10,*) a,b,c,d + if (d.ne.-1) call abort() + + ! This worked as expected + rewind(10) + write(10,*) '1 2 3 /' + rewind(10) + a = -2; b = -2; c = -2; d = -2; + read(10,*) a,b,c,d + if (d.ne.-2) call abort() + + ! This worked as expected. + rewind(10) + write(10,*) '1 2' + write(10,*) '3 /' + rewind(10) + a = -3; b = -3; c = -3; d = -3; + read(10,*) a,b,c,d + if (d.ne.-3) call abort() + + ! This failed before the patch. + rewind(10) + write(10,*) '1 2 3' + write(10,*) '/' + rewind(10) + a = -4; b = -4; c = -4; d = -4; + read(10,*) a,b,c,d + if (d.ne.-4) call abort() + + close(unit=10, status='delete') +end program t