dependent_decls_1.f90

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

F90
40
字号
! { dg-do run }! Tests the fix for pr28660 in which the order of dependent declarations! would get scrambled in the compiled code.!! Contributed by Erik Edelmann  <erik.edelmann@iki.fi>!program bar    implicit none    real :: x(10)    call foo1 (x)    call foo2 (x)    call foo3 (x)contains    subroutine foo1 (xmin)        real, intent(inout) :: xmin(:)        real :: x(size(xmin)+1)           ! The declaration for r would be added        real :: r(size(x)-1)              ! to the function before that of x        xmin = r        if (size(r) .ne. 10) call abort ()        if (size(x) .ne. 11) call abort ()    end subroutine foo1    subroutine foo2 (xmin)                ! This version was OK because of the        real, intent(inout) :: xmin(:)    ! renaming of r which pushed it up        real :: x(size(xmin)+3)           ! the symtree.        real :: zr(size(x)-3)        xmin = zr        if (size(zr) .ne. 10) call abort ()        if (size(x) .ne. 13) call abort ()    end subroutine foo2    subroutine foo3 (xmin)        real, intent(inout) :: xmin(:)        character(size(x)+2) :: y         ! host associated x        character(len(y)+3) :: z          ! This did not work for any combination        real :: r(len(z)-5)              ! of names.        xmin = r        if (size(r) .ne. 10) call abort ()        if (len(z) .ne. 15) call abort ()    end subroutine foo3end program bar

⌨️ 快捷键说明

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