diff options
author | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-02-18 19:19:47 +0000 |
---|---|---|
committer | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-02-18 19:19:47 +0000 |
commit | 225a37f9cc599fc8fdf8410905229a670a3eb35f (patch) | |
tree | d539dfb724bd984a8e80d550c38a4ece2babc926 | |
parent | b789022133f2eef8ec271d2a5a57e7595e1c340e (diff) |
2018-02-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/84389
* io.c (check_format): Allow FMT_COLON.
* gfortran.dg/dtio_33.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257795 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/io.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dtio_33.f90 | 28 |
4 files changed, 41 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8ecc90af879..01f9c5e6065 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2018-02-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/84389 + * io.c (check_format): Allow FMT_COLON. + 2018-02-18 Paul Thomas <pault@gcc.gnu.org> PR fortran/80945 diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 9b7c2de16f4..d9f0fb1d4ac 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -985,6 +985,9 @@ data_desc: case FMT_COMMA: goto format_item; + case FMT_COLON: + goto format_item_1; + case FMT_LPAREN: dtio_vlist: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 274bd74b1a4..50643570f3d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2018-02-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> + PR libgfortran/84389 + * gfortran.dg/dtio_33.f90: New test. + +2018-02-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> + PR libgfortran/84412 * gfortran.dg/inquire_18.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/dtio_33.f90 b/gcc/testsuite/gfortran.dg/dtio_33.f90 new file mode 100644 index 00000000000..2deca43db90 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dtio_33.f90 @@ -0,0 +1,28 @@ +! { dg-do run } +! PR84389 rejected valid use of ':' in format +module m + type :: t + integer :: i + contains + procedure, pass(this) :: write_t + generic, public :: write(formatted) => write_t + end type +contains + subroutine write_t(this, lun, iotype, vlist, istat, imsg) + ! argument definitions + class(t), intent(in) :: this + integer, intent(in) :: lun + character(len=*), intent(in) :: iotype + integer, intent(in) :: vlist(:) + integer, intent(out) :: istat + character(len=*), intent(inout) :: imsg + write(lun, fmt=*, iostat=istat, iomsg=imsg) "Hello World!" + end subroutine write_t +end module +program p + use m, only : t + character(50) :: str + type(t) :: foo(2) + write(str, "(*(dt:,','))") foo + if (str.ne." Hello World!, Hello World!") stop 1 +end program |