module_private_array_refs_1.f90

来自「用于进行gcc测试」· F90 代码 · 共 53 行

F90
53
字号
! { dg-do compile }! This tests the fix for PR28735 in which an ICE would be triggered in resolve_ref! because the references to 'a' and 'b' in the dummy arguments of mysub have! no symtrees in module bar, being private there.!! Contributed by  Andrew Sampson  <adsspamtrap01@yahoo.com>!!-- foo.F -----------------------------------------------module foo  implicit none  public  integer, allocatable :: a(:), b(:)end module foo!-- bar.F ---------------------------------------------module bar  use foo  implicit none  private                !  This triggered the ICE  public :: mysub        !  since a and b are not publiccontains  subroutine mysub(n, parray1)    integer, intent(in) :: n    real, dimension(a(n):b(n)) :: parray1    if ((n == 1) .and. size(parray1, 1) /= 10) call abort ()    if ((n == 2) .and. size(parray1, 1) /= 42) call abort ()  end subroutine mysubend module bar!-- sub.F -------------------------------------------------------subroutine sub()  use foo  use bar  real :: z(100)  allocate (a(2), b(2))  a = (/1, 6/)  b = (/10, 47/)  call mysub (1, z)  call mysub (2, z)  returnend!-- MAIN ------------------------------------------------------  use bar  call sub ()end! { dg-final { cleanup-modules "foo bar" } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?