https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89558
Bug ID: 89558 Summary: Recects missing lower bound expression in allocate-shape-spec-list Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: tkoenig at gcc dot gnu.org Target Milestone: --- program p integer, allocatable :: z(:,:) allocate (z(:2,2)) end is valid, but is rejected with current trunk: a.f90:3:13: 3 | allocate (z(:2,2)) | 1 Error: Bad array specification in ALLOCATE statement at (1) J3/18-007r1 says: 9.7.1.1 Form of the ALLOCATE statement R933 allocate-shape-spec is [ lower-bound-expr : ] upper-bound-expr 9.7.1.2 Execution of an ALLOCATE statement When an ALLOCATE statement is executed for an array for which allocate-shape-spec-list is specified, the values of the lower bound and upper bound expressions determine the bounds of the array. Subsequent redefinition or undefinition of any entities in the bound expressions do not affect the array bounds. If the lower bound is omitted, the default value is 1. If the upper bound is less than the lower bound, the extent in that dimension is zero and the array has zero size. so this should be accepted.