From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 1695F3858D20; Tue, 11 Jul 2023 22:49:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1695F3858D20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1689115785; bh=PvWUZmGq97hrwuLjSzUbDW+Udba6CdmRjLX/qiVGzO4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=MIq/VFOfg4uHEWfae2mS2j/TPRn0/9KjpoHBatxgVmVZ2NRv61W6YaD5/yhcKhOHr AK5o56FVLIj7GrHT+yiTjJzxFszvu0TzmmH+jBdwQmQHeT8I2vCXN8Rz+5/9+jsu7j hg1UB4e3zKyUUz0kDkk8vJiJK/wHi/fJJeD6J6tc= From: "juergen.reuter at desy dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/110576] ICE on compilation Date: Tue, 11 Jul 2023 22:49:44 +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: 14.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 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D110576 --- Comment #3 from J=C3=BCrgen Reuter --- Here is a mininal reproducer: module process_mci implicit none private public :: process_mci_entry_t type :: process_mci_entry_t integer :: i_mci =3D 0 integer, dimension(:), allocatable :: i_component integer :: n_it =3D 0 end type process_mci_entry_t end module process_mci module pcm_base use process_mci, only: process_mci_entry_t implicit none private public :: pcm_t public :: pcm_workspace_t type, abstract :: pcm_t integer :: n_components =3D 0 integer :: n_cores =3D 0 integer :: n_mci =3D 0 logical, dimension(:), allocatable :: component_selected logical, dimension(:), allocatable :: component_active integer, dimension(:), allocatable :: i_core integer, dimension(:), allocatable :: i_mci=20=20=20=20=20 contains procedure(pcm_setup_mci), deferred :: setup_mci end type pcm_t type, abstract :: pcm_workspace_t logical :: bad_point =3D .false. end type pcm_workspace_t abstract interface subroutine pcm_setup_mci (pcm, mci_entry) import class(pcm_t), intent(inout) :: pcm type(process_mci_entry_t), & dimension(:), allocatable, intent(out) :: mci_entry end subroutine pcm_setup_mci end interface end module pcm_base module pcm use pcm_base use process_mci, only: process_mci_entry_t implicit none private public :: pcm_def_t type, extends (pcm_t) :: pcm_def_t contains procedure :: setup_mci =3D> pcm_def_setup_mci end type pcm_def_t type, extends (pcm_workspace_t) :: pcm_def_workspace_t end type pcm_def_workspace_t interface module subroutine pcm_def_setup_mci (pcm, mci_entry) class(pcm_def_t), intent(inout) :: pcm type(process_mci_entry_t), & dimension(:), allocatable, intent(out) :: mci_entry end subroutine pcm_def_setup_mci end interface end module pcm submodule (pcm) pcm_s use process_mci, only: process_mci_entry_t implicit none contains module subroutine pcm_def_setup_mci (pcm, mci_entry) class(pcm_def_t), intent(inout) :: pcm type(process_mci_entry_t), & dimension(:), allocatable, intent(out) :: mci_entry integer :: i, i_mci allocate (mci_entry (pcm%n_mci)) end subroutine pcm_def_setup_mci end submodule pcm_s module process use pcm_base use pcm use process_mci implicit none private public :: process_t type :: process_t private class(pcm_t), allocatable :: & pcm type(process_mci_entry_t), dimension(:), allocatable :: & mci_entry contains procedure :: setup_mci =3D> process_setup_mci end type process_t interface module subroutine process_setup_mci (process) class(process_t), intent(inout) :: process end subroutine process_setup_mci end interface end module process submodule (process) process_s implicit none contains module subroutine process_setup_mci (process) class(process_t), intent(inout) :: process integer :: i, i_mci associate (pcm =3D> process%pcm) !!! This triggers the ICE call pcm%setup_mci (process%mci_entry) end associate end subroutine process_setup_mci end submodule process_s program main_ut implicit none end program main_ut=