summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-11 20:24:36 +0000
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-11 20:24:36 +0000
commit2849db3a254c48790e82f66b92457f4af1f9c45c (patch)
tree5b00138b5468c67e9b43c23222b614a2ae941e1d
parenta00565edae146641408cdc4ecf745a89a4c7ac8c (diff)
downloadgcc-2849db3a254c48790e82f66b92457f4af1f9c45c.tar.gz
2018-01-11 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/79383 * gfortran.dg/dtio_31.f03: New test. * gfortran.dg/dtio_32.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256554 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/dtio_31.f0347
-rw-r--r--gcc/testsuite/gfortran.dg/dtio_32.f0346
3 files changed, 99 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1ba529d00cd..b44ad56c27c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2018-01-11 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/79383
+ * gfortran.dg/dtio_31.f03: New test.
+ * gfortran.dg/dtio_32.f03: New test.
+
2018-01-11 David Malcolm <dmalcolm@redhat.com>
PR c++/43486
diff --git a/gcc/testsuite/gfortran.dg/dtio_31.f03 b/gcc/testsuite/gfortran.dg/dtio_31.f03
new file mode 100644
index 00000000000..1886ef424c4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dtio_31.f03
@@ -0,0 +1,47 @@
+! { dg-do run }
+! { dg-options="-w" }
+! PR fortran/79383
+! Contributed by Walt Brainerd <walt.brainerd at gmail dot com>
+module dollar_mod
+
+ implicit none
+
+ private
+
+ type, public :: dollar_type
+ real :: amount
+ end type dollar_type
+
+ interface write(formatted)
+ procedure :: Write_dollar
+ end interface
+
+ public :: write(formatted)
+
+ contains
+
+ subroutine Write_dollar(dollar_value, unit, b_edit_descriptor, &
+ & v_list, iostat, iomsg)
+
+ class(dollar_type), intent(in) :: dollar_value
+ integer, intent(in) :: unit
+ character(len=*), intent(in) :: b_edit_descriptor
+ integer, dimension(:), intent(in) :: v_list
+ integer, intent(out) :: iostat
+ character(len=*), intent(inout) :: iomsg
+ write(unit=unit, fmt="(f9.2)", iostat=iostat) dollar_value%amount
+ end subroutine Write_dollar
+
+end module dollar_mod
+
+program test_dollar
+
+ use, non_intrinsic :: dollar_mod, only: dollar_type, write (formatted)
+ implicit none
+
+ type(dollar_type), parameter :: wage = dollar_type(15.10)
+ character(len=10) str
+ write (str, fmt="(DT)") wage
+ if(trim(adjustl(str)) /= '15.10') call abort
+
+end program test_dollar
diff --git a/gcc/testsuite/gfortran.dg/dtio_32.f03 b/gcc/testsuite/gfortran.dg/dtio_32.f03
new file mode 100644
index 00000000000..1e55359e237
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dtio_32.f03
@@ -0,0 +1,46 @@
+! { dg-do run }
+! { dg-options="-w" }
+! PR fortran/79383
+! Contributed by Walt Brainerd <walt.brainerd at gmail dot com>
+module dollar_mod
+
+ implicit none
+
+ private
+
+ type, public :: dollar_type
+ real :: amount
+ end type dollar_type
+
+ interface write(formatted)
+ procedure :: Write_dollar
+ end interface
+
+ public :: write(formatted)
+
+ contains
+
+ subroutine Write_dollar(dollar_value, unit, b_edit_descriptor, &
+ & v_list, iostat, iomsg)
+ class(dollar_type), intent(in) :: dollar_value
+ integer, intent(in) :: unit
+ character(len=*), intent(in) :: b_edit_descriptor
+ integer, dimension(:), intent(in) :: v_list
+ integer, intent(out) :: iostat
+ character(len=*), intent(inout) :: iomsg
+ write(unit=unit, fmt="(f9.2)", iostat=iostat) dollar_value%amount
+ end subroutine Write_dollar
+
+end module dollar_mod
+
+program test_dollar
+
+ use :: dollar_mod ! with this USE, same result
+ implicit none
+
+ type(dollar_type), parameter :: wage = dollar_type(15.10)
+ character(len=10) str
+ write(str, fmt="(DT)") wage
+ if (trim(adjustl(str)) /= '15.10') call abort
+
+end program test_dollar