From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11125 invoked by alias); 17 Aug 2014 15:57:25 -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 11086 invoked by uid 55); 17 Aug 2014 15:57:20 -0000 From: "hubicka at ucw dot cz" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/62071] [4.10 Regression] ICE: in before_dom_children, at tree-ssa-pre.c:4411 Date: Sun, 17 Aug 2014 15:57:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hubicka at ucw dot cz X-Bugzilla-Status: RESOLVED 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: 2014-08/txt/msg01166.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62071 --- Comment #9 from Jan Hubicka --- > >>>The constructor is keyed to other compilation unit here, but we are provided with a body > >>>that we will never use (modulo the tree-ssa-pre bug that brings the reference into code). > >> > >>Hmm, we might consider overriding DECL_EXTERNAL so that there's a > >>definition available for devirtualization. > > > >I can always implement logic to use it only when it is inlined, but that will probably drag > >in references to other symbols belonging to the class... > > I'm not too concerned about that; users should expect an inline > function to be inlined. Thiking about this - can't we make these just DECL_COMDAT? If it is safe to inline them, it is also safe to introduce COMDAT copy of the body if we introduce the reference to it. Becaue the method is keyed, it will be overriden by non-weak in the case user links with the implementation. If he doesn't then the weak copy is no worse (reference wise) than inline copy... Honza