47 lines
998 B
Fortran
47 lines
998 B
Fortran
|
! { dg-do compile }
|
||
|
! Tests the fix for PR32827, in which IMPORT :: my_type put the
|
||
|
! symbol into the interface namespace, thereby generating an error
|
||
|
! when the declaration of 'x' is compiled.
|
||
|
!
|
||
|
! Contributed by Douglas Wells <sysmaint@contek.com>
|
||
|
!
|
||
|
subroutine func1(param)
|
||
|
type :: my_type
|
||
|
integer :: data
|
||
|
end type my_type
|
||
|
type(my_type) :: param
|
||
|
param%data = 99
|
||
|
end subroutine func1
|
||
|
|
||
|
subroutine func2(param)
|
||
|
type :: my_type
|
||
|
integer :: data
|
||
|
end type my_type
|
||
|
type(my_type) :: param
|
||
|
param%data = 21
|
||
|
end subroutine func2
|
||
|
|
||
|
type :: my_type
|
||
|
integer :: data
|
||
|
end type my_type
|
||
|
|
||
|
interface
|
||
|
subroutine func1(param)
|
||
|
import :: my_type
|
||
|
type(my_type) :: param
|
||
|
end subroutine func1
|
||
|
end interface
|
||
|
interface
|
||
|
subroutine func2(param)
|
||
|
import
|
||
|
type(my_type) :: param
|
||
|
end subroutine func2
|
||
|
end interface
|
||
|
|
||
|
type(my_type) :: x
|
||
|
call func1(x)
|
||
|
print *, x%data
|
||
|
call func2(x)
|
||
|
print *, x%data
|
||
|
end
|