[RFC, fortran] Output contained namespaces in module (PR fortran/16861)

Paul Thomas paulthomas2@wanadoo.fr
Sat Jul 16 06:19:00 GMT 2005


David,

The contained symbols are becoming publically available in with your 
patch.  In the example below, J is available in QUUS.

Regards

Paul T

module FOO
  integer :: I
contains
  subroutine BIZ(J)
    integer, dimension(I) :: J
    J = 0
  end subroutine BIZ
end module FOO

PROGRAM QUUS
  use FOO
  INTEGER    :: Z(2) = (/5,6/)
  I = 2
  call BIZ (Z)
end PROGRAM QUUS

gives


        Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4)
        procedure name = foo
        symtree: i  Ambig 0
        symbol i (INTEGER 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC)

        symtree: foo  Ambig 0
        symbol foo (UNKNOWN 0)(MODULE UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC)

        symtree: biz  Ambig 0
        symbol biz (UNKNOWN 0)(PROCEDURE UNKNOWN-INTENT UNKNOWN-ACCESS 
MODULE-PROC SUBROUTINE)
        Formal arglist: j



        CONTAINS

          Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4)
          procedure name = biz
          symtree: biz  Ambig 0 from namespace foo
          symtree: j  Ambig 0
          symbol j (INTEGER 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC DIMENSION DUMMY)
          Array spec:(1 AS_EXPLICIT 1 foo:i )


      ASSIGN biz:j(FULL) 0



        Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4)
        symtree: biz  Ambig 0
        symbol biz (UNKNOWN 0)(PROCEDURE UNKNOWN-INTENT UNKNOWN-ACCESS 
MODULE-PROC USE-ASSOC SUBROUTINE)
        Formal arglist: j
        Formal namespace
          Namespace: A-H: (REAL 4) I-N: (INTEGER 4) O-Z: (REAL 4)
          procedure name = biz




        symtree: j  Ambig 0
        symbol j (INTEGER 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC DIMENSION DUMMY USE-ASSOC)
        Array spec:(1 AS_EXPLICIT 1 i )

        symtree: i  Ambig 0
        symbol i (INTEGER 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC USE-ASSOC)

        symtree: z  Ambig 0
        symbol z (INTEGER 4)(VARIABLE UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC DIMENSION)
        value: (/ 5 , 6 /)
        Array spec:(1 AS_EXPLICIT 1 2 )

        symtree: quus  Ambig 0
        symbol quus (UNKNOWN 0)(PROGRAM UNKNOWN-INTENT UNKNOWN-ACCESS 
UNKNOWN-PROC)


      ASSIGN i 2
      CALL biz ((z(FULL)))






More information about the Fortran mailing list