[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-bugs
Subject:    [Bug fortran/98897] New: Erroneous procedure attribute for associate name
From:       damian at sourceryinstitute dot org via Gcc-bugs <gcc-bugs () gcc ! gnu ! org>
Date:       2021-01-30 0:13:57
Message-ID: bug-98897-4 () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]

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

            Bug ID: 98897
           Summary: Erroneous procedure attribute for associate name
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: damian at sourceryinstitute dot org
  Target Milestone: ---

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)=
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic