1! RUN: %S/test_symbols.sh %s %t %f18 2!DEF: /main MainProgram 3program main 4 !DEF: /main/t1 DerivedType 5 type :: t1 6 !DEF: /main/t1/a1 ObjectEntity INTEGER(4) 7 integer :: a1 8 end type 9 !REF: /main/t1 10 !DEF: /main/t2 DerivedType 11 type, extends(t1) :: t2 12 !DEF: /main/t2/a2 ObjectEntity INTEGER(4) 13 integer :: a2 14 end type 15 !REF: /main/t2 16 !DEF: /main/t3 DerivedType 17 type, extends(t2) :: t3 18 !DEF: /main/t3/a3 ObjectEntity INTEGER(4) 19 integer :: a3 20 end type 21 !REF: /main/t3 22 !DEF: /main/x3 ObjectEntity TYPE(t3) 23 type(t3) :: x3 24 !DEF: /main/i ObjectEntity INTEGER(4) 25 integer i 26 !REF: /main/i 27 !REF: /main/x3 28 !REF: /main/t2/a2 29 i = x3%a2 30 !REF: /main/i 31 !REF: /main/x3 32 !REF: /main/t1/a1 33 i = x3%a1 34 !REF: /main/i 35 !REF: /main/x3 36 !DEF: /main/t3/t2 (ParentComp) ObjectEntity TYPE(t2) 37 !REF: /main/t2/a2 38 i = x3%t2%a2 39 !REF: /main/i 40 !REF: /main/x3 41 !REF: /main/t3/t2 42 !REF: /main/t1/a1 43 i = x3%t2%a1 44 !REF: /main/i 45 !REF: /main/x3 46 !DEF: /main/t2/t1 (ParentComp) ObjectEntity TYPE(t1) 47 !REF: /main/t1/a1 48 i = x3%t1%a1 49 !REF: /main/i 50 !REF: /main/x3 51 !REF: /main/t3/t2 52 !REF: /main/t2/t1 53 !REF: /main/t1/a1 54 i = x3%t2%t1%a1 55end program 56 57!DEF: /m1 Module 58module m1 59 !DEF: /m1/t1 PUBLIC DerivedType 60 type :: t1 61 !DEF: /m1/t1/t1 ObjectEntity INTEGER(4) 62 integer :: t1 63 end type 64end module 65 66!DEF: /s1 (Subroutine) Subprogram 67subroutine s1 68 !REF: /m1 69 !DEF: /s1/t2 Use 70 !REF: /m1/t1 71 use :: m1, only: t2 => t1 72 !REF: /s1/t2 73 !DEF: /s1/t3 DerivedType 74 type, extends(t2) :: t3 75 end type 76 !REF: /s1/t3 77 !DEF: /s1/x ObjectEntity TYPE(t3) 78 type(t3) :: x 79 !DEF: /s1/i ObjectEntity INTEGER(4) 80 integer i 81 !REF: /s1/i 82 !REF: /s1/x 83 !REF: /m1/t1/t1 84 i = x%t1 85 !REF: /s1/i 86 !REF: /s1/x 87 !DEF: /s1/t3/t2 (ParentComp) ObjectEntity TYPE(t2) 88 !REF: /m1/t1/t1 89 i = x%t2%t1 90end subroutine 91