! { dg-do compile } ! Length of character dummy variable with VALUE attribute: ! - must be initialization expression or omitted ! - C interoperable: must be initialization expression of length one ! or omitted ! ! Contributed by Tobias Burnus program x implicit none character(10) :: c1,c10 c1 = 'H' c10 = 'Main' call foo1(c1) call foo2(c1) call foo3(c10) call foo4(c10) call bar1(c1) call bar2(c1) call bar3(c10) call bar4(c10) contains subroutine foo1(a) character :: a value :: a end subroutine foo1 subroutine foo2(a) character(1) :: a value :: a end subroutine foo2 subroutine foo3(a) character(10) :: a value :: a end subroutine foo3 subroutine foo4(a) ! { dg-error "VALUE attribute must have constant length" } character(*) :: a value :: a end subroutine foo4 subroutine bar1(a) use iso_c_binding, only: c_char character(kind=c_char) :: a value :: a end subroutine bar1 subroutine bar2(a) use iso_c_binding, only: c_char !character(kind=c_char,len=1) :: a character(1,kind=c_char) :: a value :: a end subroutine bar2 subroutine bar3(a) ! { dg-error "VALUE attribute must have length one" } use iso_c_binding, only: c_char character(kind=c_char,len=10) :: a value :: a end subroutine bar3 subroutine bar4(a) ! { dg-error "VALUE attribute must have constant length" } use iso_c_binding, only: c_char character(kind=c_char,len=*) :: a value :: a end subroutine bar4 end program x