diff gcc/testsuite/gfortran.dg/dtio_22.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gfortran.dg/dtio_22.f90	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,33 @@
+! { dg-do run }
+!
+! PR 78848: [OOP] ICE on writing CLASS variable with non-typebound DTIO procedure
+!
+! Contributed by Mikael Morin <morin-mikael@orange.fr>
+
+module m
+  type :: t
+    integer :: i = 123
+  end type
+  interface write(formatted)
+    procedure wf
+  end interface
+contains
+  subroutine wf(this, unit, b, c, iostat, iomsg)
+    class(t), intent(in) :: this
+    integer, intent(in) :: unit
+    character, intent(in) :: b
+    integer, intent(in) :: c(:)
+    integer, intent(out) :: iostat
+    character, intent(inout) :: iomsg
+    write (unit, "(i3)", IOSTAT=iostat, IOMSG=iomsg) this%i
+  end subroutine
+end
+
+program p
+  use m
+  character(3) :: buffer
+  class(t), allocatable :: z
+  allocate(z)
+  write(buffer,"(DT)") z
+  if (buffer /= "123") call abort()
+end