https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106507

            Bug ID: 106507
           Summary: Invalid structure constructor for extending derive
                    type
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: baradi09 at gmail dot com
  Target Milestone: ---

The following snippet triggers a compilation error

test.f90:17:25:

   17 |     inst = type2("test", 1)
      |                         1
Error: Too many components in structure constructor at (1)

when compiled with

gfortran -c test.f90

although being standard compliant. The problem seems to be the deferred length
character component. If the component is changed to fixed length (but still has
the allocatable attribute), the compiler happily compiles it.

--> test.f90 <--
module mod2
  implicit none

  type :: type1
    character(:), allocatable :: name
  end type type1

  type, extends(type1) :: type2
    integer :: data
  end type

contains

  subroutine mysub()

    type(type2) :: inst
    inst = type2("test", 1)

  end subroutine mysub

end module mod2

Reply via email to