https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87359
--- Comment #32 from Jürgen Reuter <juergen.reuter at desy dot de> --- Paul, I found a workaround: in lines 530-533 in the file src/transforms/evt_nlo.f90 there is an assignment of an allocatable array of different DT components which apparently doesn't work any more. Changing 530 select type (phs => process_instance%term(i_real)%k_term%phs) 531 type is (phs_fks_t) 532 event_deps%phs_identifiers = phs%phs_identifiers 533 end select into 530 select type (phs => process_instance%term(i_real)%k_term%phs) 531 type is (phs_fks_t) 532 allocate (event_deps%phs_identifiers (size (phs%phs_identifiers))) 533 do i = 1, size (phs%phs_identifiers) 534 event_deps%phs_identifiers(i) = phs%phs_identifiers(i) 535 end do 536 ! event_deps%phs_identifiers = phs%phs_identifiers 537 end select solves the issue of all four failing tests. phs_identifiers is an allocatable array of type phs_identifier_t as defined in the type nlo_event_deps_t (lines 62-72 of evt_nlo.f90). integer, dimension(:), allocatable :: phs_identifiers And the type phs_identifier_t is defined in src/phase_space/phs_fks.f90, lines 264-275: 264 type :: phs_identifier_t 265 integer, dimension(:), allocatable :: contributors 266 integer :: emitter = -1 267 logical :: evaluated = .false. 268 contains 269 generic :: init => init_from_emitter, init_from_emitter_and_contributors 270 procedure :: init_from_emitter => phs_identifier_init_from_emitter 271 procedure :: init_from_emitter_and_contributors & 272 => phs_identifier_init_from_emitter_and_contributors 273 procedure :: check => phs_identifier_check 274 procedure :: write => phs_identifier_write 275 end type phs_identifier_t So it has an allocatable integer array as DT component. Maybe gfortran hiccups on the allocation-on-assigment of something that is an allocatable DT with allocatable DT components?