brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 6247249 Raw
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