https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84394
Thomas Koenig <tkoenig at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |error-recovery,
| |ice-on-invalid-code
Summary|[7/8/9 Regression] compiler |[7/8 Regression] compiler
|error when using modules |error when using modules
|with derived types in block |with derived types in block
|data subprograms |data subprograms
--- Comment #4 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
This has been fixed in the meantime, at least there is a
(double) error now:
$ gfortran orig.f90
orig.f90:43:6:
43 | use mod1
| 1
Error: PRIVATE attribute not allowed in BLOCK DATA program unit at (1)
orig.f90:43:6:
43 | use mod1
| 1
Error: PRIVATE attribute not allowed in BLOCK DATA program unit at (1)
The error is correct, according to F2018:
C1415
(R1420) A block-data specification-part shall contain only derived-type
definitions and ASYNCHRONOUS, BIND, COM-
MON, DATA, DIMENSION, EQUIVALENCE, IMPLICIT, INTRINSIC, PARAMETER, POINTER,
SAVE, TARGET,
USE, VOLATILE, and type declaration statements.
So, I'd say commit a test case and close. I don't think it is
worth chasing down which particular patch fixed this.