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

            Bug ID: 99709
           Summary: VALUE attribute for an object with nonconstant length
                    parameter
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xiao....@compiler-dev.com
  Target Milestone: ---

The extensions to VALUE attribute(f2008) permitted for an object with a
nonconstant length parameter, but the result of the following test case 
is same with none VALUE attribute.

program value_f2008
  implicit none
  type :: matrix(k)
    integer, len :: k
    integer :: elements(k, k)
    !integer :: elements(2, 2)
  end type matrix

  type, extends(matrix) :: child
  end type child

  type(child(2)) :: obj
  obj%elements = reshape([1, 2, 3, 4], shape(obj%elements))

  call test_value_attr(2, obj)
  print *, obj%elements

contains

  subroutine test_value_attr(n,  nonconstant_length_object)
    integer :: n
    type(child(n)), value :: nonconstant_length_object
    nonconstant_length_object%elements = 0
  end subroutine test_value_attr
end program value_f2008

The result is 
           0           0           0           0

Reply via email to