From patchwork Fri Nov 26 16:37:06 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Jelinek X-Patchwork-Id: 73206 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 5657DB708B for ; Sat, 27 Nov 2010 03:37:18 +1100 (EST) Received: (qmail 31818 invoked by alias); 26 Nov 2010 16:37:15 -0000 Received: (qmail 31688 invoked by uid 22791); 26 Nov 2010 16:37:14 -0000 X-SWARE-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_HI, SPF_HELO_PASS, TW_GD, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 26 Nov 2010 16:37:09 +0000 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oAQGb77G000523 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 26 Nov 2010 11:37:08 -0500 Received: from tyan-ft48-01.lab.bos.redhat.com (tyan-ft48-01.lab.bos.redhat.com [10.16.42.4]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id oAQGb72O019876 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 26 Nov 2010 11:37:07 -0500 Received: from tyan-ft48-01.lab.bos.redhat.com (localhost.localdomain [127.0.0.1]) by tyan-ft48-01.lab.bos.redhat.com (8.14.4/8.14.4) with ESMTP id oAQGb6fq009439; Fri, 26 Nov 2010 17:37:06 +0100 Received: (from jakub@localhost) by tyan-ft48-01.lab.bos.redhat.com (8.14.4/8.14.4/Submit) id oAQGb6mL009437; Fri, 26 Nov 2010 17:37:06 +0100 Date: Fri, 26 Nov 2010 17:37:06 +0100 From: Jakub Jelinek To: Jason Merrill Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Fix ICE with -feliminate-dwarf2-dups or -gdwarf-4 (PR debug/46123) Message-ID: <20101126163706.GP29412@tyan-ft48-01.lab.bos.redhat.com> Reply-To: Jakub Jelinek References: <20101118204216.GB29412@tyan-ft48-01.lab.bos.redhat.com> <4CED968D.80208@redhat.com> <4CEF26F4.6030303@redhat.com> <20101126112622.GL29412@tyan-ft48-01.lab.bos.redhat.com> <20101126134116.GM29412@tyan-ft48-01.lab.bos.redhat.com> <4CEFCA91.3010906@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <4CEFCA91.3010906@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org On Fri, Nov 26, 2010 at 09:56:17AM -0500, Jason Merrill wrote: > On 11/26/2010 08:41 AM, Jakub Jelinek wrote: > >Actually no, the reason we aren't splitting is -O0 and the function > >not having always_inline attribute. > >We don't split any inlines into abstract/concrete DIEs when no inlining > >is performed. > > Right, but this PR seems to indicate that this should be changed. * just doesn't help though, it still ICEs. Without -feliminate-dwarf2-dups or -gdwarf-4 it shows that abstract and concrete DIEs are separate, but both are children of the same DW_TAG_structure_type "baz". Jakub --- dwarf2out.c.jj 2010-11-19 20:56:54.000000000 +0100 +++ dwarf2out.c 2010-11-26 17:26:25.000000000 +0100 @@ -20837,7 +20837,8 @@ gen_decl_die (tree decl, tree origin, dw /* If we're emitting an out-of-line copy of an inline function, emit info for the abstract instance and set up to refer to it. */ - else if (cgraph_function_possibly_inlined_p (decl) + else if ((cgraph_function_possibly_inlined_p (decl) + || DECL_DECLARED_INLINE_P (decl)) && ! DECL_ABSTRACT (decl) && ! class_or_namespace_scope_p (context_die) /* dwarf2out_abstract_function won't emit a die if this is