Commit 278e902c by Steven G. Kargl

re PR fortran/79383 (USE statement error)

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.

From-SVN: r256554
parent fbea3c33
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
......
! { 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
! { 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment