51 lines
928 B
Fortran
51 lines
928 B
Fortran
! { dg-do compile }
|
|
! Tests the fix for PR33550, in which an ICE would occur, instead of
|
|
! the abiguous reference error.
|
|
!
|
|
! Found at
|
|
! http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/1abc1549a6a164f1/
|
|
! by James Van Buskirk:
|
|
!
|
|
module M1
|
|
real x
|
|
end module M1
|
|
|
|
module M2
|
|
contains
|
|
subroutine y
|
|
end subroutine y
|
|
end module M2
|
|
|
|
module M3
|
|
use M2, x => y
|
|
end module M3
|
|
|
|
module M4
|
|
use M1
|
|
use M3
|
|
end module M4
|
|
|
|
module M5
|
|
use M4 ! 'x' is ambiguous here but is not referred to
|
|
end module M5
|
|
|
|
module M6
|
|
use M5 ! ditto
|
|
end module M6
|
|
|
|
program test
|
|
use M1
|
|
use M3
|
|
interface
|
|
function x(z) ! { dg-error "ambiguous reference" }
|
|
end function x ! { dg-error "Expecting END INTERFACE" }
|
|
end interface
|
|
|
|
write(*,*) 'Hello, world!'
|
|
end program test
|
|
|
|
function x(z)
|
|
x = z
|
|
end function x
|
|
! { dg-final { cleanup-modules "m1 m2 m3 m4 m5 m6" } }
|