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

            Bug ID: 114474
           Summary: [11/12/13/14 Regression] DATA statement with derived
                    type, pointer component rejected
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: anlauf at gcc dot gnu.org
  Target Milestone: ---

While working on pr50410, I noticed that the following code works with
gfortran <= 9.5.0, but fails with 10.5.0 and higher:

program p
  implicit none
  integer, target     :: zz = 42  ! initial data target
  type t
     integer, pointer :: h
  end type t
  type(t)             :: x, y
  data x / t(null()) / ! OK
  data y / t(zz)     / ! fails starting with gcc-10
  if (associated (y% h)) print *, y% h
end

This works with NAG and older gfortran and prints "42".

Current mainline gives:

pr50410_ctor.f90:9:13:

    9 |   data y / t(zz)     / ! fails starting with gcc-10
      |             1
Error: The element in the structure constructor at (1), for pointer component
'h', is PROCEDURE but should be INTEGER

Reply via email to