! 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