[LLVM] Fix Maintainers.md formatting (NFC)
[llvm-project.git] / flang / test / Semantics / symbol32.f90
blob6d7264a6bf962131799dcd4c59b6f1fbc672c636
1 ! RUN: %python %S/test_symbols.py %s %flang_fc1
2 ! Test the executable part skimming for apparent calls, to ensure that
3 ! symbols in nested scopes (BLOCK, &c.) properly shadow host symbols.
4 !DEF: /m Module
5 module m
6 end module
7 !DEF: /subr (Subroutine) Subprogram
8 !DEF: /subr/da INTENT(IN) ObjectEntity CLASS(*)
9 !DEF: /subr/ar INTENT(IN) ObjectEntity REAL(4)
10 subroutine subr (da, ar)
11 !REF: /subr/da
12 class(*), intent(in) :: da(:)
13 !REF: /subr/ar
14 real, intent(in) :: ar(..)
15 !DEF: /subr/s2 ObjectEntity REAL(4)
16 !DEF: /subr/s4 ObjectEntity REAL(4)
17 !DEF: /subr/s6 ObjectEntity REAL(4)
18 !DEF: /subr/s7 (Function) ProcEntity REAL(4)
19 !DEF: /subr/s8 ObjectEntity REAL(4)
20 real s2, s4, s6, s7, s8
21 !DEF: /s1 EXTERNAL (Function, Implicit) ProcEntity REAL(4)
22 print *, s1(1)
23 block
24 !DEF: /subr/BlockConstruct1/s2 ObjectEntity INTEGER(4)
25 !DEF: /subr/BlockConstruct1/s5 (Function) ProcEntity INTEGER(4)
26 integer s2(10), s5
27 !DEF: /subr/BlockConstruct1/s4 DerivedType
28 type :: s4
29 !DEF: /subr/BlockConstruct1/s4/n ObjectEntity INTEGER(4)
30 integer :: n
31 end type
32 !REF: /subr/BlockConstruct1/s2
33 print *, s2(1)
34 !DEF: /s3 EXTERNAL (Function, Implicit) ProcEntity REAL(4)
35 print *, s3(1)
36 !REF: /subr/BlockConstruct1/s4
37 print *, s4(1)
38 !REF: /subr/BlockConstruct1/s5
39 print *, s5(1)
40 end block
41 block
42 import, none
43 !DEF: /s2 EXTERNAL (Function, Implicit) ProcEntity REAL(4)
44 print *, s2(1)
45 end block
46 block
47 !REF: /subr/s6
48 import, only: s6
49 !DEF: /s8 EXTERNAL (Function, Implicit) ProcEntity REAL(4)
50 print *, s8(1)
51 end block
52 block
53 !REF: /m
54 use :: m
55 !REF: /subr/s7
56 print *, s7(1)
57 end block
58 !DEF: /subr/OtherConstruct1/s2 AssocEntity REAL(4)
59 associate (s2 => [1.])
60 !REF: /subr/OtherConstruct1/s2
61 print *, s2(1)
62 end associate
63 !REF: /subr/da
64 select type (s2 => da)
65 type is (real)
66 !DEF: /subr/OtherConstruct2/s2 AssocEntity REAL(4)
67 print *, s2(1)
68 end select
69 !REF: /subr/ar
70 select rank (s2 => ar)
71 rank (1)
72 !DEF: /subr/OtherConstruct3/s2 AssocEntity REAL(4)
73 print *, s2(1)
74 end select
75 end subroutine