OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gfortran.dg/] [interface_3.f90] - Diff between revs 302 and 384

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 302 Rev 384
! { dg-do compile }
! { dg-do compile }
! Tests the fix for PR20880, which was due to failure to the failure
! Tests the fix for PR20880, which was due to failure to the failure
! to detect the USE association of a nameless interface for a
! to detect the USE association of a nameless interface for a
! procedure with the same name as the encompassing scope.
! procedure with the same name as the encompassing scope.
!
!
! Contributed by Joost VandeVondele  
! Contributed by Joost VandeVondele  
!
!
module test_mod
module test_mod
interface
interface
  subroutine my_sub (a)
  subroutine my_sub (a)
    real a
    real a
  end subroutine
  end subroutine
end interface
end interface
interface
interface
  function my_fun (a)
  function my_fun (a)
    real a, my_fun
    real a, my_fun
  end function
  end function
end interface
end interface
end module
end module
module test_mod2
module test_mod2
interface
interface
  function my_fun (a)
  function my_fun (a)
    real a, my_fun
    real a, my_fun
  end function
  end function
end interface
end interface
end module
end module
! This is the original PR, excepting that the error requires the symbol
! This is the original PR, excepting that the error requires the symbol
! to be referenced.
! to be referenced.
subroutine my_sub (a)
subroutine my_sub (a)
  use test_mod
  use test_mod
  real a
  real a
  call my_sub (a)  ! { dg-error "ambiguous reference" }
  call my_sub (a)  ! { dg-error "ambiguous reference" }
  print *, a
  print *, a
end subroutine
end subroutine
integer function my_fun (a)
integer function my_fun (a)
  use test_mod
  use test_mod
  real a
  real a
  print *, a
  print *, a
  my_fun = 1  ! { dg-error "ambiguous reference" }
  my_fun = 1  ! { dg-error "ambiguous reference" }
end function
end function
! This was found whilst investigating => segfault
! This was found whilst investigating => segfault
subroutine thy_sub (a)
subroutine thy_sub (a)
  interface
  interface
    subroutine thy_sub (a) ! { dg-error "enclosing procedure" }
    subroutine thy_sub (a) ! { dg-error "enclosing procedure" }
      real a
      real a
    end subroutine
    end subroutine
  end interface
  end interface
  real a
  real a
  print *, a
  print *, a
end subroutine
end subroutine
subroutine thy_fun (a)
subroutine thy_fun (a)
  use test_mod
  use test_mod
  use test_mod2  ! OK because there is no reference to my_fun
  use test_mod2  ! OK because there is no reference to my_fun
  print *, a
  print *, a
end subroutine thy_fun
end subroutine thy_fun
subroutine his_fun (a)
subroutine his_fun (a)
  use test_mod
  use test_mod
  use test_mod2
  use test_mod2
  print *, my_fun (a)  ! { dg-error "ambiguous reference" }
  print *, my_fun (a)  ! { dg-error "ambiguous reference" }
end subroutine his_fun
end subroutine his_fun
! { dg-final { cleanup-modules "test_mod test_mod2" } }
! { dg-final { cleanup-modules "test_mod test_mod2" } }
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.