brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.0 KiB · 79a4549 Raw
264 lines · plain
1! RUN: %python %S/test_symbols.py %s %flang_fc12! Forward references in pointer initializers and TBP bindings.3 4!DEF: /m Module5module m6 implicit none7 abstract interface8  !DEF: /m/iface ABSTRACT, PUBLIC (Subroutine) Subprogram9  subroutine iface10  end subroutine11 end interface12 !DEF: /m/op1 POINTER, PUBLIC ObjectEntity REAL(4)13 real, pointer :: op114 !DEF: /m/op2 POINTER, PUBLIC ObjectEntity REAL(4)15 !DEF: /m/null INTRINSIC, PUBLIC, PURE (Function) ProcEntity16 real, pointer :: op2 => null()17 !DEF: /m/op3 POINTER, PUBLIC ObjectEntity REAL(4)18 !DEF: /m/x PUBLIC, TARGET ObjectEntity REAL(4)19 real, pointer :: op3 => x20 !DEF: /m/op4 POINTER, PUBLIC ObjectEntity REAL(4)21 !DEF: /m/y PUBLIC, TARGET ObjectEntity REAL(4)22 real, pointer :: op4 => y(1)23 !REF: /m/iface24 !DEF: /m/pp1 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity25 procedure(iface), pointer :: pp126 !REF: /m/iface27 !DEF: /m/pp2 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity28 !REF: /m/null29 procedure(iface), pointer :: pp2 => null()30 !REF: /m/iface31 !DEF: /m/pp3 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity32 !DEF: /m/ext1 EXTERNAL, PUBLIC (Subroutine) ProcEntity33 procedure(iface), pointer :: pp3 => ext134 !REF: /m/iface35 !DEF: /m/pp4 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity36 !DEF: /m/ext2 EXTERNAL, PUBLIC (Subroutine) Subprogram37 procedure(iface), pointer :: pp4 => ext238 !REF: /m/iface39 !DEF: /m/pp5 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity40 !DEF: /m/ext3 EXTERNAL, PUBLIC (Subroutine) ProcEntity41 procedure(iface), pointer :: pp5 => ext342 !REF: /m/iface43 !DEF: /m/pp6 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity44 !DEF: /m/modproc1 PUBLIC (Subroutine) Subprogram45 procedure(iface), pointer :: pp6 => modproc146 !DEF: /m/xx PUBLIC, TARGET ObjectEntity REAL(4)47 !DEF: /m/yy PUBLIC, TARGET ObjectEntity REAL(4)48 real, target :: xx, yy(2)49 !DEF: /m/t1 PUBLIC DerivedType50 type :: t151  !DEF: /m/t1/opc1 POINTER ObjectEntity REAL(4)52  real, pointer :: opc153  !DEF: /m/t1/opc2 POINTER ObjectEntity REAL(4)54  !REF: /m/null55  real, pointer :: opc2 => null()56  !DEF: /m/t1/opc3 POINTER ObjectEntity REAL(4)57  !REF: /m/xx58  real, pointer :: opc3 => xx59  !DEF: /m/t1/opc4 POINTER ObjectEntity REAL(4)60  !REF: /m/yy61  real, pointer :: opc4 => yy(1)62  !REF: /m/iface63  !DEF: /m/t1/ppc1 NOPASS, POINTER (Subroutine) ProcEntity64  procedure(iface), nopass, pointer :: ppc165  !REF: /m/iface66  !DEF: /m/t1/ppc2 NOPASS, POINTER (Subroutine) ProcEntity67  !REF: /m/null68  procedure(iface), nopass, pointer :: ppc2 => null()69  !REF: /m/iface70  !DEF: /m/t1/ppc3 NOPASS, POINTER (Subroutine) ProcEntity71  !REF: /m/ext172  procedure(iface), nopass, pointer :: ppc3 => ext173  !REF: /m/iface74  !DEF: /m/t1/ppc4 NOPASS, POINTER (Subroutine) ProcEntity75  !REF: /m/ext276  procedure(iface), nopass, pointer :: ppc4 => ext277  !REF: /m/iface78  !DEF: /m/t1/ppc5 NOPASS, POINTER (Subroutine) ProcEntity79  !REF: /m/ext380  procedure(iface), nopass, pointer :: ppc5 => ext381  !REF: /m/iface82  !DEF: /m/t1/ppc6 NOPASS, POINTER (Subroutine) ProcEntity83  !REF: /m/modproc184  procedure(iface), nopass, pointer :: ppc6 => modproc185 contains86  !DEF: /m/t1/b2 NOPASS ProcBinding87  !REF: /m/ext288  procedure, nopass :: b2 => ext289  !DEF: /m/t1/b3 NOPASS ProcBinding90  !REF: /m/ext391  procedure, nopass :: b3 => ext392  !DEF: /m/t1/b4 NOPASS ProcBinding93  !REF: /m/modproc194  procedure, nopass :: b4 => modproc195 end type96 !DEF: /m/pdt1 PUBLIC DerivedType97 !DEF: /m/pdt1/k TypeParam INTEGER(4)98 type :: pdt1(k)99  !REF: /m/pdt1/k100  integer, kind :: k101  !DEF: /m/pdt1/opc1 POINTER ObjectEntity REAL(4)102  real, pointer :: opc1103  !DEF: /m/pdt1/opc2 POINTER ObjectEntity REAL(4)104  !REF: /m/null105  real, pointer :: opc2 => null()106  !DEF: /m/pdt1/opc3 POINTER ObjectEntity REAL(4)107  !REF: /m/xx108  real, pointer :: opc3 => xx109  !DEF: /m/pdt1/opc4 POINTER ObjectEntity REAL(4)110  !REF: /m/yy111  !REF: /m/pdt1/k112  real, pointer :: opc4 => yy(k)113  !REF: /m/iface114  !DEF: /m/pdt1/ppc1 NOPASS, POINTER (Subroutine) ProcEntity115  procedure(iface), nopass, pointer :: ppc1116  !REF: /m/iface117  !DEF: /m/pdt1/ppc2 NOPASS, POINTER (Subroutine) ProcEntity118  !REF: /m/null119  procedure(iface), nopass, pointer :: ppc2 => null()120  !REF: /m/iface121  !DEF: /m/pdt1/ppc3 NOPASS, POINTER (Subroutine) ProcEntity122  !REF: /m/ext1123  procedure(iface), nopass, pointer :: ppc3 => ext1124  !REF: /m/iface125  !DEF: /m/pdt1/ppc4 NOPASS, POINTER (Subroutine) ProcEntity126  !REF: /m/ext2127  procedure(iface), nopass, pointer :: ppc4 => ext2128  !REF: /m/iface129  !DEF: /m/pdt1/ppc5 NOPASS, POINTER (Subroutine) ProcEntity130  !REF: /m/ext3131  procedure(iface), nopass, pointer :: ppc5 => ext3132  !REF: /m/iface133  !DEF: /m/pdt1/ppc6 NOPASS, POINTER (Subroutine) ProcEntity134  !REF: /m/modproc1135  procedure(iface), nopass, pointer :: ppc6 => modproc1136 contains137  !DEF: /m/pdt1/b2 NOPASS ProcBinding138  !REF: /m/ext2139  procedure, nopass :: b2 => ext2140  !DEF: /m/pdt1/b3 NOPASS ProcBinding141  !REF: /m/ext3142  procedure, nopass :: b3 => ext3143  !DEF: /m/pdt1/b4 NOPASS ProcBinding144  !REF: /m/modproc1145  procedure, nopass :: b4 => modproc1146 end type147 !REF: /m/t1148 !DEF: /m/t1x PUBLIC ObjectEntity TYPE(t1)149 type(t1) :: t1x150 !REF: /m/pdt1151 !DEF: /m/pdt1x PUBLIC ObjectEntity TYPE(pdt1(k=1_4))152 type(pdt1(1)) :: pdt1x153 !REF: /m/x154 !REF: /m/y155 real, target :: x, y(2)156 !REF: /m/ext1157 external :: ext1158 !REF: /m/iface159 !REF: /m/ext3160 procedure(iface) :: ext3161 interface162  !REF: /m/ext2163  subroutine ext2164  end subroutine165 end interface166 !DEF: /m/op10 POINTER, PUBLIC ObjectEntity REAL(4)167 !REF: /m/x168 real, pointer :: op10 => x169 !DEF: /m/op11 POINTER, PUBLIC ObjectEntity REAL(4)170 !REF: /m/y171 real, pointer :: op11 => y(1)172 !REF: /m/iface173 !DEF: /m/pp10 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity174 !REF: /m/ext1175 procedure(iface), pointer :: pp10 => ext1176 !REF: /m/iface177 !DEF: /m/pp11 EXTERNAL, POINTER, PUBLIC (Subroutine) ProcEntity178 !REF: /m/ext2179 procedure(iface), pointer :: pp11 => ext2180 !DEF: /m/t2 PUBLIC DerivedType181 type :: t2182  !DEF: /m/t2/opc10 POINTER ObjectEntity REAL(4)183  !REF: /m/x184  real, pointer :: opc10 => x185  !DEF: /m/t2/opc11 POINTER ObjectEntity REAL(4)186  !REF: /m/y187  real, pointer :: opc11 => y(1)188  !REF: /m/iface189  !DEF: /m/t2/ppc10 NOPASS, POINTER (Subroutine) ProcEntity190  !REF: /m/ext1191  procedure(iface), nopass, pointer :: ppc10 => ext1192  !REF: /m/iface193  !DEF: /m/t2/ppc11 NOPASS, POINTER (Subroutine) ProcEntity194  !REF: /m/ext2195  procedure(iface), nopass, pointer :: ppc11 => ext2196 contains197  !DEF: /m/t2/b10 NOPASS ProcBinding198  !REF: /m/ext2199  procedure, nopass :: b10 => ext2200  !DEF: /m/t2/b11 NOPASS ProcBinding201  !REF: /m/ext3202  procedure, nopass :: b11 => ext3203 end type204 !DEF: /m/pdt2 PUBLIC DerivedType205 !DEF: /m/pdt2/k TypeParam INTEGER(4)206 type :: pdt2(k)207  !REF: /m/pdt2/k208  integer, kind :: k209  !DEF: /m/pdt2/opc10 POINTER ObjectEntity REAL(4)210  !REF: /m/x211  real, pointer :: opc10 => x212  !DEF: /m/pdt2/opc11 POINTER ObjectEntity REAL(4)213  !REF: /m/y214  !REF: /m/pdt2/k215  real, pointer :: opc11 => y(k)216  !REF: /m/iface217  !DEF: /m/pdt2/ppc10 NOPASS, POINTER (Subroutine) ProcEntity218  !REF: /m/ext1219  procedure(iface), nopass, pointer :: ppc10 => ext1220  !REF: /m/iface221  !DEF: /m/pdt2/ppc11 NOPASS, POINTER (Subroutine) ProcEntity222  !REF: /m/ext2223  procedure(iface), nopass, pointer :: ppc11 => ext2224 contains225  !DEF: /m/pdt2/b10 NOPASS ProcBinding226  !REF: /m/ext2227  procedure, nopass :: b10 => ext2228  !DEF: /m/pdt2/b11 NOPASS ProcBinding229  !REF: /m/ext3230  procedure, nopass :: b11 => ext3231 end type232 !REF: /m/t2233 !DEF: /m/t2x PUBLIC ObjectEntity TYPE(t2)234 type(t2) :: t2x235 !REF: /m/pdt2236 !DEF: /m/pdt2x PUBLIC ObjectEntity TYPE(pdt2(k=1_4))237 type(pdt2(1)) :: pdt2x238contains239 !REF: /m/modproc1240 subroutine modproc1241 end subroutine242end module243!DEF: /ext1 (Subroutine) Subprogram244subroutine ext1245end subroutine246!DEF: /ext2 (Subroutine) Subprogram247subroutine ext2248end subroutine249!DEF: /ext3 (Subroutine) Subprogram250subroutine ext3251end subroutine252!DEF: /MAIN MainProgram253program MAIN254 !REF: /m255 use :: m256 !DEF: /MAIN/pdt1 Use257 !DEF: /MAIN/pdt1y ObjectEntity TYPE(pdt1(k=2_4))258 type(pdt1(2)) :: pdt1y259 !DEF: /MAIN/pdt2 Use260 !DEF: /MAIN/pdt2y ObjectEntity TYPE(pdt2(k=2_4))261 type(pdt2(2)) :: pdt2y262 print *, "compiled"263end program264