34 lines
1.2 KiB
Fortran
34 lines
1.2 KiB
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic
|
|
! Confirm enforcement of constraint C723 in F2018 for procedure pointers
|
|
|
|
module m
|
|
contains
|
|
subroutine subr(parg)
|
|
!PORTABILITY: A dummy procedure pointer should not have assumed-length CHARACTER(*) result type
|
|
procedure(character(*)), pointer :: parg
|
|
!ERROR: An assumed (*) type parameter may be used only for a (non-statement function) dummy argument, associate name, character named constant, or external function result
|
|
procedure(character(*)), pointer :: plocal
|
|
print *, parg()
|
|
plocal => parg
|
|
call subr_1(plocal)
|
|
end subroutine
|
|
|
|
subroutine subr_1(parg_1)
|
|
!PORTABILITY: A dummy procedure pointer should not have assumed-length CHARACTER(*) result type
|
|
procedure(character(*)), pointer :: parg_1
|
|
print *, parg_1()
|
|
end subroutine
|
|
end module
|
|
|
|
character(*) function f()
|
|
f = 'abcdefgh'
|
|
end function
|
|
|
|
program test
|
|
use m
|
|
character(4), external :: f
|
|
procedure(character(4)), pointer :: p
|
|
p => f
|
|
call subr(p)
|
|
end
|
|
|