global_references_1.f90
来自「用于进行gcc测试」· F90 代码 · 共 101 行
F90
101 行
! { dg-do compile }! This program tests the patch for PRs 20881, 23308, 25538 & 25710! Assembled from PRs by Paul Thomas <pault@gcc.gnu.org>module mcontains subroutine g(x) ! Local entity REAL :: x x = 1.0 end subroutine gend module m! Error only appears once but testsuite associates with both lines.function f(x) ! { dg-error "is already being used as a FUNCTION" } REAL :: f, x f = xend function ffunction g(x) ! Global entity REAL :: g, x g = x! PR25710==========================================================! Lahey -2607-S: "SOURCE.F90", line 26: ! Function 'f' cannot be referenced as a subroutine. The previous! definition is in 'line 12'. call f(g) ! { dg-error "is already being used as a FUNCTION" }end function g! Error only appears once but testsuite associates with both lines.function h(x) ! { dg-error "is already being used as a FUNCTION" } REAL :: h, x h = xend function hSUBROUTINE TT() CHARACTER(LEN=10), EXTERNAL :: j CHARACTER(LEN=10) :: T! PR20881=========================================================== ! Error only appears once but testsuite associates with both lines. T = j () ! { dg-error "is already being used as a FUNCTION" } print *, TEND SUBROUTINE TT use m ! Main program real x integer a(10)! PR23308===========================================================! Lahey - 2604-S: "SOURCE.F90", line 52:! The name 'foo' cannot be specified as both external procedure name! and common block name. The previous appearance is in 'line 68'.! Error only appears once but testsuite associates with both lines. common /foo/ a ! { dg-error "is already being used as a COMMON" } call f (x) ! OK - reference to local entity call g (x) ! -ditto-! PR25710===========================================================! Lahey - 2607-S: "SOURCE.F90", line 62:! Function 'h' cannot be referenced as a subroutine. The previous! definition is in 'line 29'. call h (x) ! { dg-error "is already being used as a FUNCTION" }! PR23308===========================================================! Lahey - 2521-S: "SOURCE.F90", line 68: Intrinsic procedure name or! external procedure name same as common block name 'foo'. call foo () ! { dg-error "is already being used as a COMMON" }contains SUBROUTINE f (x) ! Local entity real x x = 2 end SUBROUTINE fend! PR20881=========================================================== ! Lahey - 2636-S: "SOURCE.F90", line 81:! Subroutine 'j' is previously referenced as a function in 'line 39'.SUBROUTINE j (x) ! { dg-error "is already being used as a FUNCTION" } integer a(10) common /bar/ a ! Global entity foo real x x = bar(1.0) ! OK for local procedure to have common block namecontains function bar (x) real bar, x bar = 2.0*x end function barEND SUBROUTINE j! PR25538===========================================================! would ICE with entry and procedure having same names. subroutine link2 (namef) ! { dg-error "is already being used as a SUBROUTINE" } entry link2 (nameg) ! { dg-error "is already being used as a SUBROUTINE" } return end! { dg-final { cleanup-modules "m" } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?