mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 06:36:43 +00:00

Establish a set of optional usage warnings, and enable some only in "-pedantic" mode that, in our subjective experience with application codes, seem to issue frequently without indicating usage that really needs to be corrected. By default, with this patch the compiler should appear to be somewhat less persnickety but not less informative. Differential Revision: https://reviews.llvm.org/D150710
32 lines
1.2 KiB
Fortran
32 lines
1.2 KiB
Fortran
! RUN: %flang -fsyntax-only -pedantic 2>&1 %s | FileCheck %s
|
|
! Verifies that warnings issue when actual arguments with implicit
|
|
! interfaces are associated with dummy procedures and dummy procedure
|
|
! pointers whose interfaces are explicit.
|
|
module m
|
|
contains
|
|
real function realfunc(x)
|
|
real, intent(in) :: x
|
|
realfunc = x
|
|
end function
|
|
subroutine s00(p0)
|
|
procedure(realfunc) :: p0
|
|
end subroutine
|
|
subroutine s01(p1)
|
|
procedure(realfunc), pointer, intent(in) :: p1
|
|
end subroutine
|
|
subroutine s02(p2)
|
|
procedure(realfunc), pointer :: p2
|
|
end subroutine
|
|
subroutine test
|
|
external :: extfunc
|
|
external :: extfuncPtr
|
|
pointer :: extfuncPtr
|
|
!CHECK: Actual procedure argument has an implicit interface which is not known to be compatible with dummy argument 'p0=' which has an explicit interface
|
|
call s00(extfunc)
|
|
!CHECK: Actual procedure argument has an implicit interface which is not known to be compatible with dummy argument 'p1=' which has an explicit interface
|
|
call s01(extfunc)
|
|
!CHECK: Actual procedure argument has an implicit interface which is not known to be compatible with dummy argument 'p2=' which has an explicit interface
|
|
call s02(extfuncPtr)
|
|
end subroutine
|
|
end module
|