! RUN: %python %S/test_symbols.py %s %flang_fc1 ! Test the executable part skimming for apparent calls, to ensure that ! symbols in nested scopes (BLOCK, &c.) properly shadow host symbols. !DEF: /m Module module m end module !DEF: /subr (Subroutine) Subprogram !DEF: /subr/da INTENT(IN) ObjectEntity CLASS(*) !DEF: /subr/ar INTENT(IN) ObjectEntity REAL(4) subroutine subr (da, ar) !REF: /subr/da class(*), intent(in) :: da(:) !REF: /subr/ar real, intent(in) :: ar(..) !DEF: /subr/s2 ObjectEntity REAL(4) !DEF: /subr/s4 ObjectEntity REAL(4) !DEF: /subr/s6 ObjectEntity REAL(4) !DEF: /subr/s7 (Function) ProcEntity REAL(4) !DEF: /subr/s8 ObjectEntity REAL(4) real s2, s4, s6, s7, s8 !DEF: /s1 EXTERNAL (Function, Implicit) ProcEntity REAL(4) print *, s1(1) block !DEF: /subr/BlockConstruct1/s2 ObjectEntity INTEGER(4) !DEF: /subr/BlockConstruct1/s5 (Function) ProcEntity INTEGER(4) integer s2(10), s5 !DEF: /subr/BlockConstruct1/s4 DerivedType type :: s4 !DEF: /subr/BlockConstruct1/s4/n ObjectEntity INTEGER(4) integer :: n end type !REF: /subr/BlockConstruct1/s2 print *, s2(1) !DEF: /s3 EXTERNAL (Function, Implicit) ProcEntity REAL(4) print *, s3(1) !REF: /subr/BlockConstruct1/s4 print *, s4(1) !REF: /subr/BlockConstruct1/s5 print *, s5(1) end block block import, none !DEF: /s2 EXTERNAL (Function, Implicit) ProcEntity REAL(4) print *, s2(1) end block block !REF: /subr/s6 import, only: s6 !DEF: /s8 EXTERNAL (Function, Implicit) ProcEntity REAL(4) print *, s8(1) end block block !REF: /m use :: m !REF: /subr/s7 print *, s7(1) end block !DEF: /subr/OtherConstruct1/s2 AssocEntity REAL(4) associate (s2 => [1.]) !REF: /subr/OtherConstruct1/s2 print *, s2(1) end associate !REF: /subr/da select type (s2 => da) type is (real) !DEF: /subr/OtherConstruct2/s2 AssocEntity REAL(4) print *, s2(1) end select !REF: /subr/ar select rank (s2 => ar) rank (1) !DEF: /subr/OtherConstruct3/s2 AssocEntity REAL(4) print *, s2(1) end select end subroutine