diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2018-02-18 19:19:47 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2018-02-18 19:19:47 +0000 |
commit | 26eacfe8da4a2fc7a1ce330aa46c0009e04e1364 (patch) | |
tree | d539dfb724bd984a8e80d550c38a4ece2babc926 /gcc | |
parent | c5751d7e7495ff6e029e3b0609d5e965e7ae1063 (diff) | |
download | gcc-26eacfe8da4a2fc7a1ce330aa46c0009e04e1364.zip gcc-26eacfe8da4a2fc7a1ce330aa46c0009e04e1364.tar.gz gcc-26eacfe8da4a2fc7a1ce330aa46c0009e04e1364.tar.bz2 |
re PR fortran/84389 (Defined output: unexpected compiler error with the use of ":" edit descriptor)
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.
From-SVN: r257795
Diffstat (limited to 'gcc')
-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 8ecc90a..01f9c5e 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 9b7c2de..d9f0fb1 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 274bd74..5064357 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 0000000..2deca43 --- /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 |