From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18586 invoked by alias); 11 Jun 2011 14:19:33 -0000 Received: (qmail 18578 invoked by uid 22791); 11 Jun 2011 14:19:32 -0000 X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_50,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from nikam.ms.mff.cuni.cz (HELO nikam.ms.mff.cuni.cz) (195.113.20.16) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 11 Jun 2011 14:19:18 +0000 Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id 206079AC7D1; Sat, 11 Jun 2011 16:19:17 +0200 (CEST) Date: Sat, 11 Jun 2011 14:36:00 -0000 From: Jan Hubicka To: gcc-patches@gcc.gnu.org Subject: Cgraph alias reorg 16/14 (fix latent bug in ipa.c) Message-ID: <20110611141917.GA3871@kam.mff.cuni.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg00906.txt.bz2 Hi, there is typo in cgraph_comdat_can_be_unshared_p that causes us to sometimes diverge in visibility of the single comdat group that leads to undefined symbols in Mozlla. Fixed thus. Bootstrapped/regtested x86_64-linux, comitted. Index: ChangeLog =================================================================== --- ChangeLog (revision 174952) +++ ChangeLog (working copy) @@ -1,5 +1,9 @@ 2011-06-11 Jan Hubicka + * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto. + +2011-06-11 Jan Hubicka + * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code. (lto_symtab_resolve_can_prevail_p): Likewise. (lto_symtab_merge_cgraph_nodes): Update merging of aliases. Index: ipa.c =================================================================== --- ipa.c (revision 174952) +++ ipa.c (working copy) @@ -571,7 +571,7 @@ cgraph_comdat_can_be_unshared_p (struct address taken. */ for (next = node->same_comdat_group; next != node; next = next->same_comdat_group) - if (cgraph_address_taken_from_non_vtable_p (node) + if (cgraph_address_taken_from_non_vtable_p (next) && !DECL_VIRTUAL_P (next->decl)) return false; }