Bug 98897 - Erroneous procedure attribute for associate name

Damian Rouson damian@sourceryinstitute.org
Sat Jan 30 00:19:59 GMT 2021


The behavior demonstrated below also occurs if the procedure
definition is moved to a submodule.  Workarounds include (1) declaring
"output_data" as a variable instead of an associate name or (2) making
"output" a function referencing it as such instead of calling it as a
subroutine.

% cat bug.f90
module output_data_m
  implicit none

  type output_data_t
  contains
    procedure output
  end type

  interface
    module subroutine output(self)
      implicit none
      class(output_data_t) self
    end subroutine
  end interface

contains
  module procedure output
  end procedure
end module

  use output_data_m
  implicit none
  associate(output_data => output_data_t())
    call output_data%output
  end associate
end

% gfortran bug.f90
bug.f90:24:20:
   24 |     call output_data%output
      |                    1
Error: VARIABLE attribute of ‘output_data’ conflicts with PROCEDURE
attribute at (1)

% gfortran --version
GNU Fortran (GCC) 11.0.0 20201231 (experimental)


More information about the Fortran mailing list