blob: 0c1603939448f0ee790f89089f09dafbf1f500a3 [file] [log] [blame]
! { dg-do compile }
! Tests the fix for PR34431 in which function TYPEs that were
! USE associated would cause an error.
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
!
module m1
integer :: hh
type t
real :: r
end type t
end module m1
module m2
type t
integer :: k
end type t
end module m2
module m3
contains
type(t) function func()
use m2
func%k = 77
end function func
end module m3
type(t) function a()
use m1, only: hh
type t2
integer :: j
end type t2
type t
logical :: b
end type t
a%b = .true.
end function a
type(t) function b()
use m1, only: hh
use m2
use m3
b = func ()
b%k = 5
end function b
type(t) function c()
use m1, only: hh
type t2
integer :: j
end type t2
type t
logical :: b
end type t
c%b = .true.
end function c
program main
type t
integer :: m
end type t
contains
type(t) function a1()
use m1, only: hh
type t2
integer :: j
end type t2
type t
logical :: b
end type t
a1%b = .true.
end function a1
type(t) function b1()
use m1, only: hh
use m2, only: t
! NAG f95 believes that the host-associated type(t)
! should be used:
! b1%m = 5
! However, I (Tobias Burnus) believe that the use-associated one should
! be used:
b1%k = 5
end function b1
type(t) function c1()
use m1, only: hh
type t2
integer :: j
end type t2
type t
logical :: b
end type t
c1%b = .true.
end function c1
type(t) function d1()
d1%m = 55
end function d1
end program main