From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27867 invoked by alias); 23 Apr 2015 16:37:08 -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 27424 invoked by uid 48); 23 Apr 2015 16:37:03 -0000 From: "hubicka at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/65858] ICE in varpool_node::get_constructor during chromium build on arm-linux-gnueabihf with LTO during LINK chrome Date: Thu, 23 Apr 2015 16:37:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hubicka at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED 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: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-04/txt/msg02046.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65858 --- Comment #1 from Jan Hubicka --- Those two bugs seems to be caused by same issue. Unforutnately it is bit hard to guess what it is coming from - it seems that we manage to store error_mark_node into the LTO object file. If you can patch your GCC tree, the following (untested) patch should bring the ICE from link time to compile time making it easier to reproduce (I build chromium on x86_64 and did not see this crash) Index: lto-streamer-out.c =================================================================== --- lto-streamer-out.c (revision 222160) +++ lto-streamer-out.c (working copy) @@ -2149,6 +2149,7 @@ /* Output DECL_INITIAL for the function, which contains the tree of lexical scopes. */ stream_write_tree (ob, DECL_INITIAL (var), true); + gcc_assert (DECL_INITIAL (var) != error_mark_node); /* Create a section to hold the pickled output of this function. */ produce_asm (ob, var);