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

            Bug ID: 123952
           Summary: module procedure with array values dummy procedure
                    rejected
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pault at gcc dot gnu.org
  Target Milestone: ---

Reproducer that fails as shown below:

module tensors_1D_m
  abstract interface
     function scalar_1D_initializer_i() result(f)
      double precision, allocatable :: f(:)
    end function
  end interface

  type :: scalar_1D_t
    integer gradient_operator_1D_
  end type

  interface scalar_1D_t
     module function construct_1D_scalar_from_function(initializer)
result(scalar_1D)
      procedure(scalar_1D_initializer_i), pointer :: initializer
      type(scalar_1D_t) scalar_1D
    end function
  end interface

end module tensors_1D_m

submodule(tensors_1D_m) scalar_1D_s
contains

  module procedure construct_1D_scalar_from_function ! "MODULE PROCEDURE at (1)
must be
                                                     ! in a generic module
interface"
      scalar_1D = scalar_1D_t (42)                   ! "Unexpected assignment
statement...
  end procedure                                      ! "Expecting END SUBMODULE
statement at (1)"

end submodule scalar_1D_s

Reply via email to