1! RUN: %S/test_errors.sh %s %t %flang_fc1 2! REQUIRES: shell 3! C722 A function name shall not be declared with an asterisk type-param-value 4! unless it is of type CHARACTER and is the name of a dummy function or the 5! name of the result of an external function. 6subroutine s() 7 8 type derived(param) 9 integer, len :: param 10 end type 11 type(derived(34)) :: a 12 13 procedure(character(len=*)) :: externCharFunc 14 !ERROR: An assumed (*) type parameter may be used only for a (non-statement function) dummy argument, associate name, named constant, or external function result 15 procedure(type(derived(param =*))) :: externDerivedFunc 16 17 interface 18 subroutine subr(dummyFunc) 19 character(len=*) :: dummyFunc 20 end subroutine subr 21 end interface 22 23 contains 24 function works() 25 type(derived(param=4)) :: works 26 end function works 27 28 !ERROR: An assumed (*) type parameter may be used only for a (non-statement function) dummy argument, associate name, named constant, or external function result 29 function fails1() 30 character(len=*) :: fails1 31 end function fails1 32 33 !ERROR: An assumed (*) type parameter may be used only for a (non-statement function) dummy argument, associate name, named constant, or external function result 34 function fails2() 35 !ERROR: An assumed (*) type parameter may be used only for a (non-statement function) dummy argument, associate name, named constant, or external function result 36 type(derived(param=*)) :: fails2 37 end function fails2 38 39end subroutine s 40