URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [interface_3.f90] - Rev 154
Compare with Previous | Blame | View Log
! { dg-do compile }
! Tests the fix for PR20880, which was due to failure to the failure
! to detect the USE association of a nameless interface for a
! procedure with the same name as the encompassing scope.
!
! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
!
module test_mod
interface
subroutine my_sub (a)
real a
end subroutine
end interface
interface
function my_fun (a)
real a, my_fun
end function
end interface
end module
module test_mod2
interface
function my_fun (a)
real a, my_fun
end function
end interface
end module
! This is the original PR, excepting that the error requires the symbol
! to be referenced.
subroutine my_sub (a)
use test_mod
real a
call my_sub (a) ! { dg-error "ambiguous reference" }
print *, a
end subroutine
integer function my_fun (a)
use test_mod
real a
print *, a
my_fun = 1 ! { dg-error "ambiguous reference" }
end function
! This was found whilst investigating => segfault
subroutine thy_sub (a)
interface
subroutine thy_sub (a) ! { dg-error "enclosing procedure" }
real a
end subroutine
end interface
real a
print *, a
end subroutine
subroutine thy_fun (a)
use test_mod
use test_mod2 ! OK because there is no reference to my_fun
print *, a
end subroutine thy_fun
subroutine his_fun (a)
use test_mod
use test_mod2
print *, my_fun (a) ! { dg-error "ambiguous reference" }
end subroutine his_fun
! { dg-final { cleanup-modules "test_mod" } }