aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2018-02-18 19:19:47 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2018-02-18 19:19:47 +0000
commit26eacfe8da4a2fc7a1ce330aa46c0009e04e1364 (patch)
treed539dfb724bd984a8e80d550c38a4ece2babc926 /gcc
parentc5751d7e7495ff6e029e3b0609d5e965e7ae1063 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/fortran/io.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/dtio_33.f9028
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