From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2B685385703F; Tue, 16 Mar 2021 07:32:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2B685385703F From: "juergen.reuter at desy dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/99602] [11 regression] runtime error: pointer actual argument not associated Date: Tue, 16 Mar 2021 07:32:36 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: juergen.reuter at desy dot de X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2021 07:32:36 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99602 --- Comment #6 from J=C3=BCrgen Reuter --- Actually, the last example missed a line that I overeagerly deleted too muc= h. This one is the correct reproducer: module m implicit none private public :: m_t type :: m_t private end type m_t end module m module m2_testbed use m implicit none private public :: prepare_m2 procedure (prepare_m2_proc), pointer :: prepare_m2 =3D> null () abstract interface subroutine prepare_m2_proc (m2) import class(m_t), intent(inout), pointer :: m2 end subroutine prepare_m2_proc end interface end module m2_testbed module a use m use m2_testbed, only: prepare_m2 implicit none private public :: a_1 contains subroutine a_1 () class(m_t), pointer :: mm mm =3D> null () call prepare_m2 (mm) end subroutine a_1 end module a module m2 use m implicit none private public :: m2_t type, extends (m_t) :: m2_t private contains procedure :: read =3D> m2_read end type m2_t contains subroutine m2_read (mm) class(m2_t), intent(out), target :: mm end subroutine m2_read end module m2 program main use m2_testbed use a, only: a_1 implicit none prepare_m2 =3D> prepare_whizard_m2 call a_1 () contains subroutine prepare_whizard_m2 (mm) use m use m2 class(m_t), intent(inout), pointer :: mm if (.not. associated (mm)) allocate (m2_t :: mm)=20=20=20=20 select type (mm) type is (m2_t) call mm%read () end select end subroutine prepare_whizard_m2 end program main=