34 lines
671 B
Fortran
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" } }
|
|
|