[Bug fortran/56845] New: [OOP] _vptr not set to declared type for CLASS + SAVE

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 4 19:08:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56845

             Bug #: 56845
           Summary: [OOP] _vptr not set to declared type for CLASS + SAVE
    Classification: Unclassified
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: burnus@gcc.gnu.org
                CC: janus@gcc.gnu.org


The program below fails at run time. Unallocated the class should match the
declared type - but it is never set with SAVE.


The dump of the following program shows:
  static struct __class_m_T_a y = {};
Expected:
  static struct __class_m_T_a y = { ._data = 0B, ._vptr = &__vtab_m_T};


module m
type t
integer ::a
end type t
contains
subroutine sub
  type(t), save, allocatable :: x
  class(t), save,allocatable :: y
  if (.not. same_type_as(x,y)) call abort()
end subroutine sub
subroutine sub2
  type(t), save, allocatable :: a(:)
  class(t), save,allocatable :: b(:)
  if (.not. same_type_as(a,b)) call abort()
end subroutine sub2
end module m

use m
call sub()
call sub2()
end



More information about the Gcc-bugs mailing list