! { dg-do compile } ! { dg-options "-w" } program c_by_val_2 external bar real (4) :: bar, ar(2) = (/1.0,2.0/) type :: mytype integer :: i end type mytype type(mytype) :: z character(8) :: c = "blooey" real :: stmfun, x stmfun(x)=x**2 x = 5 print *, stmfun(%VAL(x)) ! { dg-error "not allowed in this context" } print *, sin (%VAL(2.0)) ! { dg-error "not allowed in this context" } print *, foo (%VAL(1.0)) ! { dg-error "not allowed in this context" } call foobar (%VAL(0.5)) ! { dg-error "not allowed in this context" } print *, bar (%VAL(z)) ! { dg-error "not of numeric type" } print *, bar (%VAL(c)) ! { dg-error "not of numeric type" } print *, bar (%VAL(ar)) ! { dg-error "cannot be an array" } print *, bar (%VAL(0.0)) contains function foo (a) real(4) :: a, foo foo = cos (a) end function foo subroutine foobar (a) real(4) :: a print *, a end subroutine foobar end program c_by_val_2