1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
! RUN: %python %S/test_errors.py %s %flang_fc1
module m1
type t1
end type
type t3
integer t3c
end type
interface
subroutine s1(x)
!ERROR: 't1' from host is not accessible
import :: t1
type(t1) :: x
!BECAUSE: 't1' is hidden by this entity
integer :: t1
end subroutine
subroutine s2()
!ERROR: 't2' not found in host scope
import :: t2
end subroutine
subroutine s3(x, y)
!ERROR: Derived type 't1' not found
type(t1) :: x, y
end subroutine
subroutine s4(x, y)
!ERROR: 't3' from host is not accessible
import, all
type(t1) :: x
type(t3) :: y
!BECAUSE: 't3' is hidden by this entity
integer :: t3
end subroutine
end interface
contains
subroutine s5()
end
subroutine s6()
import, only: s5
implicit none(external)
call s5()
end
subroutine s7()
import, only: t1
implicit none(external)
!ERROR: 's5' is an external procedure without the EXTERNAL attribute in a scope with IMPLICIT NONE(EXTERNAL)
call s5()
end
subroutine s8()
!This case is a dangerous ambiguity allowed by the standard.
!ERROR: 't1' from host is not accessible
type(t1), pointer :: p
!BECAUSE: 't1' is hidden by this entity
type t1
integer n(2)
end type
end
subroutine s9()
!This case is a dangerous ambiguity allowed by the standard.
type t2
!ERROR: 't1' from host is not accessible
type(t1), pointer :: p
end type
!BECAUSE: 't1' is hidden by this entity
type t1
integer n(2)
end type
type(t2) x
end
subroutine s10()
!Forward shadowing derived type in IMPLICIT
!(supported by all other compilers)
implicit type(t1) (c) ! forward shadow
implicit type(t3) (d) ! host associated
type t1
integer a
end type
c%a = 1
d%t3c = 2
end
end module
module m2
integer, parameter :: ck = kind('a')
end module
program main
use m2
interface
subroutine s0(x)
import :: ck
character(kind=ck) :: x ! no error
end subroutine
end interface
end program
|