From 2849db3a254c48790e82f66b92457f4af1f9c45c Mon Sep 17 00:00:00 2001 From: kargl Date: Thu, 11 Jan 2018 20:24:36 +0000 Subject: [PATCH] 2018-01-11 Steven G. Kargl 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 --- gcc/testsuite/ChangeLog | 6 +++++ gcc/testsuite/gfortran.dg/dtio_31.f03 | 47 +++++++++++++++++++++++++++++++++++ gcc/testsuite/gfortran.dg/dtio_32.f03 | 46 ++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/dtio_31.f03 create mode 100644 gcc/testsuite/gfortran.dg/dtio_32.f03 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 + + PR fortran/79383 + * gfortran.dg/dtio_31.f03: New test. + * gfortran.dg/dtio_32.f03: New test. + 2018-01-11 David Malcolm 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 +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 +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 -- 2.11.4.GIT