From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27703 invoked by alias); 9 Dec 2009 18:17:44 -0000 Received: (qmail 27662 invoked by uid 48); 9 Dec 2009 18:17:30 -0000 Date: Wed, 09 Dec 2009 18:17:00 -0000 Message-ID: <20091209181730.27661.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/42335] [OOP] ICE on CLASS IS (bad_identifier) In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "janus at gcc dot gnu dot org" 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 X-SW-Source: 2009-12/txt/msg00973.txt.bz2 ------- Comment #3 from janus at gcc dot gnu dot org 2009-12-09 18:17 ------- Mine. I think this one-liner is all that's needed: Index: gcc/fortran/symbol.c =================================================================== --- gcc/fortran/symbol.c (revision 155023) +++ gcc/fortran/symbol.c (working copy) @@ -2476,7 +2476,7 @@ select_type_insert_tmp (gfc_symtree **st) { gfc_select_type_stack *stack = select_type_stack; for (; stack; stack = stack->prev) - if ((*st)->n.sym == stack->selector) + if ((*st)->n.sym == stack->selector && stack->tmp) *st = stack->tmp; } With this, the test case gives: c0.f90:16.20: class is (bad_id) ! ICE 1 Error: 'bad_id' at (1) is not an accessible derived type c0.f90:17.36: this%elements(:) = v%elements(:) 1 Error: 'elements' at (1) is not a member of the 'vector_class' structure -- janus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |janus at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2009-12-09 18:03:21 |2009-12-09 18:17:30 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42335