From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20826 invoked by alias); 13 Aug 2013 11:47:45 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 20789 invoked by uid 48); 13 Aug 2013 11:47:43 -0000 From: "mikael at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/58007] [OOP] ICE in free_pi_tree(): Unresolved fixup - resolve_fixups does not fixup component of __class_bsr_Bsr_matrix Date: Tue, 13 Aug 2013 11:47:00 -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: 4.7.2 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: major X-Bugzilla-Who: mikael at gcc dot gnu.org X-Bugzilla-Status: NEW 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: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-08/txt/msg00700.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58007 Mikael Morin changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikael at gcc dot gnu.org --- Comment #5 from Mikael Morin --- I suppose the following is happening (based on Janus' test): - At the time bsr is use-associated we see references to matrix::sparse_matrix, but as the type has already been loaded, we redirect references to matrix::sparse_matrix to the one already loaded. See read_module, the code that comes after the comment: /* See if the symbol has already been loaded by a previous module. If so, we reference the existing symbol and prevent it from being loaded again. This should not happen if the symbol being read is an index for an assumed shape dummy array (ns != 1). */ - Normally, mio_component (called from mio_component_list, from mio_symbol) associates a component pointer to the corresponding pointer id so that it can be referenced in expressions for example. As the type is not loaded from file (see above) the association isn't done either. - get_neighbors contains an expression (in the result's array spec) referencing max_degree, one of matrix::sparse_matrix's components. Because of the above, the reference is not associated with the corresponding component pointer, and it leads to the internal error.