102 lines · plain
1! RUN: %python %S/test_symbols.py %s %flang_fc12! Test host association in internal subroutine of main program.3 4!DEF: /MAIN MainProgram5program MAIN6 !DEF: /MAIN/x ObjectEntity INTEGER(4)7 integer x8 !DEF: /MAIN/s (Subroutine) Subprogram9 call s10contains11 !REF: /MAIN/s12 subroutine s13 !DEF: /MAIN/s/y (Implicit) ObjectEntity REAL(4)14 !DEF: /MAIN/s/x HostAssoc INTEGER(4)15 y = x16 contains17 !DEF: /MAIN/s/s2 (Subroutine) Subprogram18 subroutine s219 !DEF: /MAIN/s/s2/z (Implicit) ObjectEntity REAL(4)20 !DEF: /MAIN/s/s2/x HostAssoc INTEGER(4)21 z = x22 end subroutine23 end subroutine24end program25 26!DEF: /s (Subroutine) Subprogram27subroutine s28 !DEF: /s/x ObjectEntity REAL(4)29 real x(100, 100)30 !DEF: /s/s1 (Subroutine) Subprogram31 call s132contains33 !REF: /s/s134 subroutine s135 !DEF: /s/s1/x HostAssoc REAL(4)36 print *, x(10, 10)37 end subroutine38end subroutine39 40!DEF: /sb (Subroutine) Subprogram41subroutine sb42 !DEF: /sb/x TARGET ObjectEntity REAL(4)43 real, target :: x44 !DEF: /sb/s1 (Subroutine) Subprogram45 call s146contains47 !REF: /sb/s148 subroutine s149 !DEF: /sb/s1/p POINTER ObjectEntity REAL(4)50 real, pointer :: p51 !REF: /sb/s1/p52 !DEF: /sb/s1/x TARGET HostAssoc REAL(4)53 p => x54 end subroutine55end subroutine56 57! Test host associated symbols are also created for symbols that are use58! associated in the host.59 60!DEF: /m1 Module61module m162 !DEF: /m1/x PUBLIC ObjectEntity REAL(4)63 real x(100,100)64 !DEF: /m1/x_target PUBLIC, TARGET ObjectEntity REAL(4)65 real, target :: x_target66end module67 68!DEF: /s_use (Subroutine) Subprogram69subroutine s_use70 !REF: /m171 use :: m172 !DEF: /s_use/x Use REAL(4)73 print *, x74 !DEF: /s_use/s1 (Subroutine) Subprogram75 call s176contains77 !REF: /s_use/s178 subroutine s179 !DEF: /s_use/s1/x HostAssoc REAL(4)80 print *, x(10,10)81 end subroutine82end subroutine83 84!DEF: /sb_use (Subroutine) Subprogram85subroutine sb_use86 !REF: /m187 use :: m188 !DEF: /sb_use/x_target TARGET Use REAL(4)89 print *, x_target90 !DEF: /sb_use/s1 (Subroutine) Subprogram91 call s192contains93 !REF: /sb_use/s194 subroutine s195 !DEF: /sb_use/s1/p POINTER ObjectEntity REAL(4)96 real, pointer :: p97 !REF: /sb_use/s1/p98 !DEF: /sb_use/s1/x_target TARGET HostAssoc REAL(4)99 p => x_target100 end subroutine101end subroutine102