! RUN: %python %S/test_errors.py %s %flang_fc1
! C1107 -- COMMON, EQUIVALENCE, INTENT, NAMELIST, OPTIONAL, VALUE or
! STATEMENT FUNCTIONS not allow in specification part
subroutine s1_c1107
common /nl/x
block
!ERROR: COMMON statement is not allowed in a BLOCK construct
common /nl/y
end block
end
subroutine s2_c1107
real x(100), i(5)
integer y(100), j(5)
equivalence (x, y)
block
!ERROR: EQUIVALENCE statement is not allowed in a BLOCK construct
equivalence (i, j)
end block
end
subroutine s3_c1107(x_in, x_out)
integer x_in, x_out
intent(in) x_in
block
!ERROR: INTENT statement is not allowed in a BLOCK construct
intent(out) x_out
end block
end
subroutine s4_c1107
namelist /nl/x
block
!ERROR: NAMELIST statement is not allowed in a BLOCK construct
namelist /nl/y
end block
end
subroutine s5_c1107(x,y)
integer x, y
value x
block
!ERROR: VALUE statement is not allowed in a BLOCK construct
value y
end block
end
subroutine s6_c1107(x, y)
integer x, y
optional x
block
!ERROR: OPTIONAL statement is not allowed in a BLOCK construct
optional y
end block
end
subroutine s7_c1107
integer x, arr(1)
inc(x) = x + 1
block
!ERROR: A statement function definition may not appear in a BLOCK construct
dec(x) = x - 1
arr(x) = x - 1 ! ok
end block
end
subroutine s8
real x(1)
associate (sf=>x)
block
integer :: j = 1
sf(j) = j ! looks like a statement function, but isn't one
end block
end associate
end