35 lines · plain
1! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic2! Confirm enforcement of constraint C723 in F2018 for procedure pointers3 4 module m5 contains6 subroutine subr(parg)7 !PORTABILITY: A dummy procedure pointer should not have assumed-length CHARACTER(*) result type [-Wportability]8 procedure(character(*)), pointer :: parg9 !ERROR: An assumed (*) type parameter may be used only for a (non-statement function) dummy argument, associate name, character named constant, or external function result10 procedure(character(*)), pointer :: plocal11 print *, parg()12 plocal => parg13 call subr_1(plocal)14 end subroutine15 16 subroutine subr_1(parg_1)17 !PORTABILITY: A dummy procedure pointer should not have assumed-length CHARACTER(*) result type [-Wportability]18 procedure(character(*)), pointer :: parg_119 print *, parg_1()20 end subroutine21 end module22 23 character(*) function f()24 f = 'abcdefgh'25 end function26 27 program test28 use m29 character(4), external :: f30 procedure(character(4)), pointer :: p31 p => f32 call subr(p)33 end34 35