summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/host_assoc_function_2.f90
blob: 5d63d7aa378fef73d8f9a1671727f7bc2b49164c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
! { dg-do compile }
! Tests the fix for PR32464, where the use associated procedure would
! mess up the check for "grandparent" host association.
!
! Contributed by Harald Anlauf <anlauf@gmx.de>
!

module gfcbug64_mod1
  implicit none

  public :: inverse

  interface inverse
     module procedure copy
  end interface

contains

  function copy (d) result (y)
    real, intent(in) :: d(:)
    real             :: y(size (d))     ! <- this version kills gfortran
!    real, intent(in) :: d
!    real             :: y
    y = d
  end function copy

end module gfcbug64_mod1

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

module gfcbug64_mod2
  implicit none
contains

  subroutine foo (x_o)
    real, intent(in) :: x_o(:)

    integer          :: s(size (x_o))           ! <- this line kills gfortran

  contains

    subroutine bar ()
      use gfcbug64_mod1, only: inverse          ! <- this line kills gfortran
    end subroutine bar

  end subroutine foo
end module gfcbug64_mod2
! { dg-final { cleanup-modules "gfcbug64_mod1 gfcbug64_mod2" } }