From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8628 invoked by alias); 20 Mar 2015 17:56:16 -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 8607 invoked by uid 89); 20 Mar 2015 17:56:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 20 Mar 2015 17:56:14 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t2KHuBRq029078 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Fri, 20 Mar 2015 13:56:12 -0400 Received: from reynosa.quesejoda.com (unused [10.10.50.155] (may be forged)) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t2KHuApc014964; Fri, 20 Mar 2015 13:56:11 -0400 Message-ID: <550C5F3A.1030802@redhat.com> Date: Fri, 20 Mar 2015 17:56:00 -0000 From: Aldy Hernandez User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: jason merrill CC: gcc-patches Subject: [debug-early] Handle specification of class scoped static functions Content-Type: multipart/mixed; boundary="------------060802000907050001090005" X-SW-Source: 2015-03/txt/msg01106.txt.bz2 This is a multi-part message in MIME format. --------------060802000907050001090005 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 895 Hi Jason. For class scoped static functions: class C { public: static void moo () {} }; ...we are calling gen_subprogram on moo() the usual handful of times (during early dwarf): once as a member of C and once because moo() is a reachable function. However, on the second time, we reuse the cached DIE and merely remove the DW_AT_declaration attribute: /* Clear out the declaration attribute, but leave the parameters so they can be augmented with location information later. */ remove_AT (subr_die, DW_AT_declaration); This causes us to reuse the DIE from within the class, instead of adding a specification of this cached DIE. With the attached tweak we fix this problem, and about a hundred gdb regressions. This IMHO is a "Good Thing" :). Would you be so kind as to look at this two-liner to make sure you're OK with it? Thanks. Aldy --------------060802000907050001090005 Content-Type: text/plain; charset=UTF-8; name="curr" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="curr" Content-length: 1599 Y29tbWl0IGNlYzA4ZDQzY2FmZmJmMDg2NzIwYWMzOTk0ZDA2ODAxMGRjMTAz YzkKQXV0aG9yOiBBbGR5IEhlcm5hbmRleiA8YWxkeWhAcmVkaGF0LmNvbT4K RGF0ZTogICBGcmkgTWFyIDIwIDA5OjU1OjMxIDIwMTUgLTA3MDAKCiAgICBI YW5kbGUgc3BlY2lmaWNhdGlvbiBvZiBjbGFzcyBzY29wZWQgc3RhdGljIGZ1 bmN0aW9ucy4KCmRpZmYgLS1naXQgYS9nY2MvZHdhcmYyb3V0LmMgYi9nY2Mv ZHdhcmYyb3V0LmMKaW5kZXggODg4NGFmZC4uMTMyNWRmZSAxMDA2NDQKLS0t IGEvZ2NjL2R3YXJmMm91dC5jCisrKyBiL2djYy9kd2FyZjJvdXQuYwpAQCAt MTg3NzAsNyArMTg3NzAsMjAgQEAgZ2VuX3N1YnByb2dyYW1fZGllICh0cmVl IGRlY2wsIGR3X2RpZV9yZWYgY29udGV4dF9kaWUpCiAgICAgICBzdHJ1Y3Qg ZHdhcmZfZmlsZV9kYXRhICogZmlsZV9pbmRleCA9IGxvb2t1cF9maWxlbmFt ZSAocy5maWxlKTsKICAgICAgIGlmICgoKGlzX2N1X2RpZSAob2xkX2RpZS0+ ZGllX3BhcmVudCkKIAkgICAgfHwgY29udGV4dF9kaWUgPT0gTlVMTAotCSAg ICB8fCBkdW1wZWRfZWFybHkpCisJICAgIHx8IChkdW1wZWRfZWFybHkKKwkJ LyogRm9yIGNsYXNzIHNjb3BlZCBzdGF0aWMgZnVuY3Rpb25zLCB0aGUgZHVt cGVkIGVhcmx5CisJCSAgIHZlcnNpb24gd2FzIHRoZSBkZWNsYXJhdGlvbiwg d2hlcmVhcyB0aGUgbmV4dCB0aW1lCisJCSAgIGFyb3VuZCB3aXRoIGEgZGlm ZmVyZW50IGNvbnRleHQgc2hvdWxkIGJlIHRoZQorCQkgICBzcGVjaWZpY2F0 aW9uLiAgSW4gdGhpcyBjYXNlLCBhdm9pZCByZXVzaW5nIHRoZQorCQkgICBE SUUsIGJ1dCBnZW5lcmF0ZSBhIHNwZWNpZmljYXRpb24gYmVsb3cuIEUuZy46 CisKKwkJICAgY2xhc3MgQyB7CisJCSAgIHB1YmxpYzoKKwkJICAgICBzdGF0 aWMgdm9pZCBtb28gKCkge30KKwkJICAgfTsKKwkJKi8KKwkJJiYgKCFpc19j dV9kaWUgKGNvbnRleHRfZGllKQorCQkgICAgfHwgIWNsYXNzX29yX25hbWVz cGFjZV9zY29wZV9wIChvbGRfZGllLT5kaWVfcGFyZW50KSkpKQogCSAgICYm IChERUNMX0FSVElGSUNJQUwgKGRlY2wpCiAJICAgICAgIHx8IChnZXRfQVRf ZmlsZSAob2xkX2RpZSwgRFdfQVRfZGVjbF9maWxlKSA9PSBmaWxlX2luZGV4 CiAJCSAgICYmIChnZXRfQVRfdW5zaWduZWQgKG9sZF9kaWUsIERXX0FUX2Rl Y2xfbGluZSkK --------------060802000907050001090005--