1+ ! RUN: %flang_fc1 -fdebug-dump-symbols %s 2>&1 | FileCheck %s
2+
3+ ! CHECK: Module scope: m1
4+ ! CHECK: i, PUBLIC size={{[0-9]+}} offset={{[0-9]+}}: ObjectEntity type: REAL({{[0-9]+}}) init:{{.+}}
5+ ! CHECK: init, PUBLIC (Subroutine): Subprogram ()
6+ ! CHECK: o, PUBLIC (CrayPointee) size={{[0-9]+}} offset={{[0-9]+}}: ObjectEntity type: REAL({{[0-9]+}})
7+ ! CHECK: ptr, PUBLIC (CrayPointer) size={{[0-9]+}} offset={{[0-9]+}}: ObjectEntity type: INTEGER({{[0-9]+}})
8+ module m1
9+ implicit none
10+ real :: o
11+ real :: i = 42.0
12+ pointer (ptr, o)
13+ contains
14+ ! CHECK: Subprogram scope: init
15+ subroutine init
16+ implicit none
17+ ptr= loc(i)
18+ print * , " init : o= " , o
19+ end subroutine init
20+ end module m1
21+
22+ ! CHECK: Module scope: m2
23+ ! CHECK: i, PUBLIC: Use from i in m1
24+ ! CHECK: i2, PUBLIC size={{[0-9]+}} offset={{[0-9]+}}: ObjectEntity type: REAL({{[0-9]+}}) init:{{.+}}
25+ ! CHECK: init, PUBLIC (Subroutine): Use from init in m1
26+ ! CHECK: o, PUBLIC (CrayPointee): Use from o in m1
27+ ! CHECK: ptr, PUBLIC (CrayPointer): Use from ptr in m1
28+ ! CHECK: reset, PUBLIC (Subroutine): Subprogram ()
29+ module m2
30+ use m1
31+ implicit none
32+ real :: i2 = 777.0
33+ contains
34+ ! CHECK: Subprogram scope: reset
35+ ! CHECK: o2 (CrayPointee) size={{[0-9]+}} offset={{[0-9]+}}: ObjectEntity type: REAL({{[0-9]+}})
36+ ! CHECK: ptr (CrayPointer) size={{[0-9]+}} offset={{[0-9]+}}: ObjectEntity type: INTEGER({{[0-9]+}})
37+ subroutine reset
38+ real :: o2
39+ pointer (ptr, o2)
40+ ptr= loc(i2)
41+ print * , " reset : o= " , o, " o2 = " , o2
42+ o2 = 666.0
43+ end subroutine reset
44+ end module m2
45+
46+ ! CHECK: MainProgram scope: main
47+ ! CHECK: i: Use from i in m2
48+ ! CHECK: i2: Use from i2 in m2
49+ ! CHECK: init (Subroutine): Use from init in m2
50+ ! CHECK: o (CrayPointee): Use from o in m2
51+ ! CHECK: ptr (CrayPointer): Use from ptr in m2
52+ ! CHECK: reset (Subroutine): Use from reset in m2
53+ program main
54+ use m2
55+ implicit none
56+ call init
57+ call reset
58+ write (6 ,* ) " main : o = " , o
59+ if (o == 42.0 ) then
60+ print * , " pass"
61+ else
62+ print * , " fail"
63+ end if
64+ end program main
0 commit comments