https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102287
Bug ID: 102287 Summary: optional allocatable array arguments (intent out) of derived types with allocatable components are not properly passed to subroutines. Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: alipasha.celeris at gmail dot com Target Milestone: --- Created attachment 51437 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51437&action=edit minimum test case for the observed bug. Segfaults on the call to "b" inside "a". In a chain of subroutine calls, where there is an allocatable optional array argument, with intent (out), of a derived type with an allocatable component, if the argument is omitted in any of the calls (i.e. it is not present inside the called routine) then the next call (inside the called routine) causes a segfault. This behavior is not observed when - the derived type has only non-allocatable components, - the optional dummy argument is scalar, or - the intent is not OUT. The only factor that can cause the segfault seems to be the presence of an allocatable component in the derived type, when the dummy argument is an allocatable array.