mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 03:26:48 +00:00

Two checks related to BIND(C) vs non-BIND(C) entry points with the same dummy argument added by https://github.com/llvm/llvm-project/pull/92474 have turned out to be unnecessary. Revert them and adjust the tests.
71 lines
1.6 KiB
Fortran
71 lines
1.6 KiB
Fortran
!RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic -Werror
|
|
|
|
!PORTABILITY: An interoperable procedure should have an interface
|
|
subroutine subr1(e) bind(c)
|
|
external e
|
|
end
|
|
|
|
subroutine subr2(p) bind(c)
|
|
!PORTABILITY: An interoperable procedure should have an interface
|
|
procedure() :: p
|
|
end
|
|
|
|
subroutine subr3(p) bind(c)
|
|
!PORTABILITY: An interoperable procedure should have an interface
|
|
procedure(real) :: p
|
|
end
|
|
|
|
subroutine subr4(p) bind(c)
|
|
interface
|
|
!PORTABILITY: A dummy procedure of an interoperable procedure should be BIND(C)
|
|
subroutine p(n)
|
|
integer, intent(in) :: n
|
|
end
|
|
end interface
|
|
end
|
|
|
|
subroutine subr5(p) bind(c)
|
|
interface
|
|
!WARNING: A dummy procedure of an interoperable procedure should be BIND(C)
|
|
subroutine p(c)
|
|
character(*), intent(in) :: c
|
|
end
|
|
end interface
|
|
end
|
|
|
|
subroutine subr6(p) bind(c)
|
|
interface
|
|
function p()
|
|
!ERROR: Interoperable function result must be scalar
|
|
real p(1)
|
|
end
|
|
end interface
|
|
end
|
|
|
|
subroutine subr7(p) bind(c)
|
|
interface
|
|
!ERROR: Interoperable character function result must have length one
|
|
character(*) function p()
|
|
end
|
|
end interface
|
|
end
|
|
|
|
subroutine subr8(p) bind(c)
|
|
interface
|
|
!WARNING: A dummy procedure of an interoperable procedure should be BIND(C)
|
|
subroutine p(n)
|
|
integer, intent(in), value :: n
|
|
end
|
|
end interface
|
|
end
|
|
|
|
subroutine subr9(p) bind(c)
|
|
!ERROR: An interface name with the BIND attribute must appear if the BIND attribute appears in a procedure declaration
|
|
procedure(q), bind(c), pointer :: p
|
|
interface
|
|
function q()
|
|
real q(1)
|
|
end
|
|
end interface
|
|
end
|