From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1350 invoked by alias); 1 Feb 2015 08:42:11 -0000 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 Received: (qmail 1314 invoked by uid 89); 1 Feb 2015 08:42:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-we0-f173.google.com Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com) (74.125.82.173) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 01 Feb 2015 08:42:09 +0000 Received: by mail-we0-f173.google.com with SMTP id w62so33963112wes.4 for ; Sun, 01 Feb 2015 00:42:06 -0800 (PST) X-Received: by 10.180.99.42 with SMTP id en10mr3255477wib.26.1422780126307; Sun, 01 Feb 2015 00:42:06 -0800 (PST) Received: from android-4c5a376a18c0e957.fritz.box (p4FE9C110.dip0.t-ipconnect.de. [79.233.193.16]) by mx.google.com with ESMTPSA id hm6sm11714960wjb.32.2015.02.01.00.42.04 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 01 Feb 2015 00:42:05 -0800 (PST) User-Agent: K-9 Mail for Android In-Reply-To: <54CBFFE7.1010003@redhat.com> References: <54B87E5B.1090502@redhat.com> <54B88149.1040906@redhat.com> <54B94F4D.4040009@redhat.com> <54B97854.7040007@redhat.com> <54C296B5.4050506@redhat.com> <54C7FA41.8010903@redhat.com> <54C92A59.4070401@redhat.com> <54C92A80.80306@redhat.com> <54C92FA8.9040005@redhat.com> <54CBEB69.3000401@redhat.com> <54CBFFE7.1010003@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Subject: Re: [debug-early] C++ clones and limbo DIEs From: Richard Biener Date: Sun, 01 Feb 2015 08:42:00 -0000 To: Jason Merrill ,Aldy Hernandez CC: gcc-patches Message-ID: <60E8D1B2-FF82-4467-A6D9-403585ACC59D@gmail.com> X-IsSubscribed: yes X-SW-Source: 2015-02/txt/msg00009.txt.bz2 On January 30, 2015 11:04:23 PM CET, Jason Merrill wrote: >On 01/30/2015 03:36 PM, Aldy Hernandez wrote: >> /* It is possible to have both DECL_ABSTRACT_P and DECLARATION be >true if we >> started to generate the abstract instance of an inline, decided >to output >> its containing class, and proceeded to emit the declaration of >the inline >> from the member list for the class. If so, DECLARATION takes >priority; >> we'll get back to the abstract instance when done with the >class. */ > >This comment is out of date; in this case decl_ultimate_origin will >return NULL_TREE, so origin is null, so we shouldn't need to deal with >this here. > >> + /* ?? We must not reset `origin', so C++ clones get a proper >> + DW_AT_abstract_origin tagged DIE further on. */ >> +#if 0 >> /* The class-scope declaration DIE must be the primary DIE. */ >> if (origin && declaration && class_or_namespace_scope_p >(context_die)) >> { >> origin = NULL; >> gcc_assert (!old_die); >> } >> +#endif > >So I think this block is unnecessary. > >> Obviously, now we will get more DIEs than before (complete >constructors, base constructors, and what have yous). Whereas >previously we only generated a DIE for the used ones. > >Hmm, that's unfortunate. > >What if we leave the clone skipping alone here and emit early debug >about all reachable functions in >symbol_table::finalize_compilation_unit, between analyze_functions() >and >compile()? I always thought a user expects debug information for all entities in the source, not only those useb by the (optimized) binary. Richard. >Jason