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