diff options
author | kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-01-11 20:24:36 +0000 |
---|---|---|
committer | kargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2018-01-11 20:24:36 +0000 |
commit | 2849db3a254c48790e82f66b92457f4af1f9c45c (patch) | |
tree | 5b00138b5468c67e9b43c23222b614a2ae941e1d | |
parent | a00565edae146641408cdc4ecf745a89a4c7ac8c (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dtio_31.f03 | 47 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dtio_32.f03 | 46 |
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 |