rt_gccstream/gcc/testsuite/gfortran.dg/host_assoc_function_9.f90

34 lines
671 B
Fortran

! { dg-do run }
! Tests the fix for the bug PR40629, in which the reference to 'x'
! in 'upper' wrongly host-associated with the symbol 'x' at module
! leve rather than the function.
!
! Contributed by Philippe Marguinaud <philippe.marguinaud@meteo.fr>
!
MODULE m
REAL :: x = 0
CONTAINS
subroutine s
call upper
call lower
CONTAINS
SUBROUTINE upper
y = x(3,1)
if (int(y) .ne. 3) call abort
END SUBROUTINE
FUNCTION x(n, m)
x = m*n
END FUNCTION
SUBROUTINE lower
y = x(2,1)
if (int(y) .ne. 2) call abort
END SUBROUTINE
END SUBROUTINE
END MODULE
use m
call s
end
! { dg-final { cleanup-modules "m" } }