[Bug fortran/102287] New: optional allocatable array arguments (intent out) of derived types with allocatable components are not properly passed to subroutines.

alipasha.celeris at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat Sep 11 00:37:06 GMT 2021


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.


More information about the Gcc-bugs mailing list