I've committed the following patch. Both Oracle's manual and DVF's manual indicate that STRUCTURE can appear in a BLOCK DATA statement. While I was here, I sorted the case labels.
2016-10-23 Steven G. Kargl <ka...@gcc.gnu.org> PR fortran/77763 * parse.c (parse_spec): Allow STRUCTURE in BLOCK DATA. Sort case labels. 2016-10-23 Steven G. Kargl <ka...@gcc.gnu.org> PR fortran/77763 * gfortran.dg/pr77763.f90 Index: gcc/fortran/parse.c =================================================================== --- gcc/fortran/parse.c (revision 241451) +++ gcc/fortran/parse.c (working copy) @@ -3588,17 +3588,18 @@ loop: /* Fortran 2008, C1116. */ switch (st) { - case ST_DATA_DECL: + case ST_ATTR_DECL: case ST_COMMON: case ST_DATA: - case ST_TYPE: + case ST_DATA_DECL: + case ST_DERIVED_DECL: case ST_END_BLOCK_DATA: - case ST_ATTR_DECL: case ST_EQUIVALENCE: - case ST_PARAMETER: case ST_IMPLICIT: case ST_IMPLICIT_NONE: - case ST_DERIVED_DECL: + case ST_PARAMETER: + case ST_STRUCTURE_DECL: + case ST_TYPE: case ST_USE: break; Index: gcc/testsuite/gfortran.dg/pr77763.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr77763.f90 (nonexistent) +++ gcc/testsuite/gfortran.dg/pr77763.f90 (working copy) @@ -0,0 +1,6 @@ +! { dg-do compile } +! { dg-options "-fdec" } +block data + structure /s1/ + end structure +end block data -- Steve