1! { dg-do compile } 2! { dg-options "-w" } 3 4program c_by_val_2 5 external bar 6 real (4) :: bar, ar(2) = (/1.0,2.0/) 7 type :: mytype 8 integer :: i 9 end type mytype 10 type(mytype) :: z 11 character(8) :: c = "blooey" 12 real :: stmfun, x 13 stmfun(x)=x**2 14 15 x = 5 16 print *, stmfun(%VAL(x)) ! { dg-error "not allowed in this context" } 17 print *, sin (%VAL(2.0)) ! { dg-error "not allowed in this context" } 18 print *, foo (%VAL(1.0)) ! { dg-error "not allowed in this context" } 19 call foobar (%VAL(0.5)) ! { dg-error "not allowed in this context" } 20 print *, bar (%VAL(z)) ! { dg-error "not of numeric type" } 21 print *, bar (%VAL(c)) ! { dg-error "not of numeric type" } 22 print *, bar (%VAL(ar)) ! { dg-error "cannot be an array" } 23 print *, bar (%VAL(0.0)) 24contains 25 function foo (a) 26 real(4) :: a, foo 27 foo = cos (a) 28 end function foo 29 subroutine foobar (a) 30 real(4) :: a 31 print *, a 32 end subroutine foobar 33end program c_by_val_2 34 35