[Bug fortran/99602] [11 regression] runtime error: pointer actual argument not associated

pault at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Mar 16 08:31:13 GMT 2021


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

--- Comment #8 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Jürgen Reuter from comment #6)
> Actually, the last example missed a line that I overeagerly deleted too
> much. 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 => 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 => 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 => 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 => 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)    
>     select type (mm)
>     type is (m2_t)
>        call mm%read ()
>     end select
>   end subroutine prepare_whizard_m2
> end program main

Hi Juergen,

I still cannot reproduce the problem. In fact, the runtime error message does
not appear in the tree dump.

Best regards

Paul


More information about the Gcc-bugs mailing list