From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7810 invoked by alias); 21 Oct 2011 18:59:51 -0000 Received: (qmail 7800 invoked by uid 22791); 21 Oct 2011 18:59:50 -0000 X-SWARE-Spam-Status: No, hits=-7.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail4-relais-sop.national.inria.fr (HELO mail4-relais-sop.national.inria.fr) (192.134.164.105) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 21 Oct 2011 18:59:35 +0000 Received: from ip-133.net-81-220-116.brest.rev.numericable.fr (HELO laptop-mg.local) ([81.220.116.133]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 21 Oct 2011 20:59:33 +0200 Date: Fri, 21 Oct 2011 19:29:00 -0000 From: Marc Glisse To: gcc-patches@gcc.gnu.org cc: iant@google.com Subject: Ping: demangle C++ extern "C" functions In-Reply-To: Message-ID: References: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1828720902-1319223574=:6478" 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-10/txt/msg02023.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1828720902-1319223574=:6478 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-length: 1458 Ping (changing the Cc to bother a different person...). On Sat, 3 Sep 2011, Marc Glisse wrote: > Hello, > > this patch is obviously related to PR c++/2316 ("g++ fails to overload on > language linkage") but seems fairly independent. Currently, the demangler > recognizes 'Y' for extern "C" functions and ignores it. The patch makes it > print extern "C" after the function type: > _Z1aIFYviEEvPT_ > void a(void (*)(int) extern "C") > > Writing it before the return type seems more natural, but it is ambiguous. I > guess it could also be printed in the middle (next to the star that indicates > a function pointer), but placing it like the cv-qualifiers of member > functions seemed good (plus, that's where Oracle puts it in its > implementation of c++filt). > > Since g++ doesn't generate such mangling, the effect should be hard to notice > ;-) > > (Even if the patch was ok, I am not a committer) > > 2011-09-03 Marc Glisse > > * include/demangle.h (demangle_component_type) > [DEMANGLE_COMPONENT_EXTERN_C]: Handle extern "C". > * libiberty/cp-demangle.c (d_dump): Likewise. > (d_make_comp): Likewise. > (d_function_type): Likewise. > (d_print_comp): Likewise. > (d_print_mod_list): Likewise. > (d_print_mod): Likewise. > (d_print_function_type): Likewise. > * libiberty/testsuite/demangle-expected: Test it. -- Marc Glisse --8323329-1828720902-1319223574=:6478 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=demangle-patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=demangle-patch Content-length: 6149 SW5kZXg6IGluY2x1ZGUvZGVtYW5nbGUuaA0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIGluY2x1ZGUvZGVtYW5nbGUuaAkocmV2aXNpb24gMTc4NDk4 KQ0KKysrIGluY2x1ZGUvZGVtYW5nbGUuaAkod29ya2luZyBjb3B5KQ0KQEAg LTI4OCw2ICsyODgsOSBAQA0KICAgLyogVGhlIGNvbnN0IHF1YWxpZmllci4g IFRoZSBvbmUgc3VidHJlZSBpcyB0aGUgdHlwZSB3aGljaCBpcyBiZWluZw0K ICAgICAgcXVhbGlmaWVkLiAgKi8NCiAgIERFTUFOR0xFX0NPTVBPTkVOVF9D T05TVCwNCisgIC8qIGV4dGVybiAiQyIgbGlua2FnZS4gIFRoZSBvbmUgc3Vi dHJlZSBpcyB0aGUgZnVuY3Rpb24gdHlwZSB3aGljaA0KKyAgICAgaXMgYmVp bmcgcXVhbGlmaWVkLiAgKi8NCisgIERFTUFOR0xFX0NPTVBPTkVOVF9FWFRF Uk5fQywNCiAgIC8qIFRoZSByZXN0cmljdCBxdWFsaWZpZXIgbW9kaWZ5aW5n IGEgbWVtYmVyIGZ1bmN0aW9uLiAgVGhlIG9uZQ0KICAgICAgc3VidHJlZSBp cyB0aGUgdHlwZSB3aGljaCBpcyBiZWluZyBxdWFsaWZpZWQuICAqLw0KICAg REVNQU5HTEVfQ09NUE9ORU5UX1JFU1RSSUNUX1RISVMsDQpJbmRleDogbGli aWJlcnR5L3Rlc3RzdWl0ZS9kZW1hbmdsZS1leHBlY3RlZA0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KLS0tIGxpYmliZXJ0eS90ZXN0c3VpdGUvZGVtYW5n bGUtZXhwZWN0ZWQJKHJldmlzaW9uIDE3ODQ5OCkNCisrKyBsaWJpYmVydHkv dGVzdHN1aXRlL2RlbWFuZ2xlLWV4cGVjdGVkCSh3b3JraW5nIGNvcHkpDQpA QCAtNDE1MSwzICs0MTUxLDggQEANCiAtLWZvcm1hdD1hdXRvDQogX1pOM1Bz aTdWYXJpYW50SUljUEtjRUU1dmlzaXRJSVJaTjExVmFyaWFudFRlc3Q5VGVz dFZpc2l0MTF0ZXN0X21ldGhvZEV2RVVsUzJfRTBfUlpOUzZfMTF0ZXN0X21l dGhvZEV2RVVsY0UxX1JaTlM2XzExdGVzdF9tZXRob2RFdkVVbE5TXzROb25l RUVfRUVFTlNfMTNWYXJpYW50RGV0YWlsMTlTZWxlY3RWaXNpdG9yUmVzdWx0 SUlEcFRfRUU0dHlwZUVEcE9TR18NCiBQc2k6OlZhcmlhbnREZXRhaWw6OlNl bGVjdFZpc2l0b3JSZXN1bHQ8VmFyaWFudFRlc3Q6OlRlc3RWaXNpdDo6dGVz dF9tZXRob2QoKTo6e2xhbWJkYShjaGFyIGNvbnN0KikjMn0mLCBWYXJpYW50 VGVzdDo6VGVzdFZpc2l0Ojp0ZXN0X21ldGhvZCgpOjp7bGFtYmRhKGNoYXIp IzN9JiwgVmFyaWFudFRlc3Q6OlRlc3RWaXNpdDo6dGVzdF9tZXRob2QoKTo6 e2xhbWJkYShQc2k6Ok5vbmUpIzF9Jj46OnR5cGUgUHNpOjpWYXJpYW50PGNo YXIsIGNoYXIgY29uc3QqPjo6dmlzaXQ8VmFyaWFudFRlc3Q6OlRlc3RWaXNp dDo6dGVzdF9tZXRob2QoKTo6e2xhbWJkYShjaGFyIGNvbnN0KikjMn0mLCBW YXJpYW50VGVzdDo6VGVzdFZpc2l0Ojp0ZXN0X21ldGhvZCgpOjp7bGFtYmRh KGNoYXIpIzN9JiwgVmFyaWFudFRlc3Q6OlRlc3RWaXNpdDo6dGVzdF9tZXRo b2QoKTo6e2xhbWJkYShQc2k6Ok5vbmUpIzF9Jj4oKFZhcmlhbnRUZXN0OjpU ZXN0VmlzaXQ6OnRlc3RfbWV0aG9kKCk6OntsYW1iZGEoUHNpOjpOb25lKSMx fSYpLi4uKQ0KKyMNCisjIGV4dGVybiAiQyIgbGlua2FnZSBmb3IgZnVuY3Rp b24gdHlwZXMuDQorLS1mb3JtYXQ9Z251LXYzDQorX1oxYUlGWXZpRUV2UFRf DQordm9pZCBhPHZvaWQgKGludCkgZXh0ZXJuICJDIj4odm9pZCAoKikoaW50 KSBleHRlcm4gIkMiKQ0KSW5kZXg6IGxpYmliZXJ0eS9jcC1kZW1hbmdsZS5j DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gbGliaWJlcnR5L2NwLWRl bWFuZ2xlLmMJKHJldmlzaW9uIDE3ODQ5OCkNCisrKyBsaWJpYmVydHkvY3At ZGVtYW5nbGUuYwkod29ya2luZyBjb3B5KQ0KQEAgLTU5MSw2ICs1OTEsOSBA QA0KICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9DT05TVDoNCiAgICAg ICBwcmludGYgKCJjb25zdFxuIik7DQogICAgICAgYnJlYWs7DQorICAgIGNh c2UgREVNQU5HTEVfQ09NUE9ORU5UX0VYVEVSTl9DOg0KKyAgICAgIHByaW50 ZiAoImV4dGVybiBcIkNcIlxuIik7DQorICAgICAgYnJlYWs7DQogICAgIGNh c2UgREVNQU5HTEVfQ09NUE9ORU5UX1JFU1RSSUNUX1RISVM6DQogICAgICAg cHJpbnRmICgicmVzdHJpY3QgdGhpc1xuIik7DQogICAgICAgYnJlYWs7DQpA QCAtODA3LDYgKzgxMCw3IEBADQogICAgICAgYnJlYWs7DQogDQogICAgICAg LyogVGhlc2UgdHlwZXMgb25seSByZXF1aXJlIG9uZSBwYXJhbWV0ZXIuICAq Lw0KKyAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9FWFRFUk5fQzoNCiAg ICAgY2FzZSBERU1BTkdMRV9DT01QT05FTlRfVlRBQkxFOg0KICAgICBjYXNl IERFTUFOR0xFX0NPTVBPTkVOVF9WVFQ6DQogICAgIGNhc2UgREVNQU5HTEVf Q09NUE9ORU5UX1RZUEVJTkZPOg0KQEAgLTIzMjQsMTggKzIzMjgsMjIgQEAN CiBkX2Z1bmN0aW9uX3R5cGUgKHN0cnVjdCBkX2luZm8gKmRpKQ0KIHsNCiAg IHN0cnVjdCBkZW1hbmdsZV9jb21wb25lbnQgKnJldDsNCisgIGludCBpc19l eHRlcm5fYyA9IDA7DQogDQogICBpZiAoISBkX2NoZWNrX2NoYXIgKGRpLCAn RicpKQ0KICAgICByZXR1cm4gTlVMTDsNCiAgIGlmIChkX3BlZWtfY2hhciAo ZGkpID09ICdZJykNCiAgICAgew0KLSAgICAgIC8qIEZ1bmN0aW9uIGhhcyBD IGxpbmthZ2UuICBXZSBkb24ndCBwcmludCB0aGlzIGluZm9ybWF0aW9uLg0K LQkgRklYTUU6IFdlIHNob3VsZCBwcmludCBpdCBpbiB2ZXJib3NlIG1vZGUu ICAqLw0KKyAgICAgIC8qIEZ1bmN0aW9uIGhhcyBDIGxpbmthZ2UuICAqLw0K KyAgICAgIGlzX2V4dGVybl9jID0gMTsNCiAgICAgICBkX2FkdmFuY2UgKGRp LCAxKTsNCisgICAgICBkaS0+ZXhwYW5zaW9uICs9IHNpemVvZiAiZXh0ZXJu IFwiQ1wiIjsNCiAgICAgfQ0KICAgcmV0ID0gZF9iYXJlX2Z1bmN0aW9uX3R5 cGUgKGRpLCAxKTsNCiAgIGlmICghIGRfY2hlY2tfY2hhciAoZGksICdFJykp DQogICAgIHJldHVybiBOVUxMOw0KKyAgaWYgKGlzX2V4dGVybl9jKQ0KKyAg ICByZXQgPSBkX21ha2VfY29tcCAoZGksIERFTUFOR0xFX0NPTVBPTkVOVF9F WFRFUk5fQywgcmV0LCBOVUxMKTsNCiAgIHJldHVybiByZXQ7DQogfQ0KIA0K QEAgLTM5MjUsNiArMzkzMyw3IEBADQogICAgIGNhc2UgREVNQU5HTEVfQ09N UE9ORU5UX1JFU1RSSUNUX1RISVM6DQogICAgIGNhc2UgREVNQU5HTEVfQ09N UE9ORU5UX1ZPTEFUSUxFX1RISVM6DQogICAgIGNhc2UgREVNQU5HTEVfQ09N UE9ORU5UX0NPTlNUX1RISVM6DQorICAgIGNhc2UgREVNQU5HTEVfQ09NUE9O RU5UX0VYVEVSTl9DOg0KICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9W RU5ET1JfVFlQRV9RVUFMOg0KICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVO VF9QT0lOVEVSOg0KICAgICBjYXNlIERFTUFOR0xFX0NPTVBPTkVOVF9DT01Q TEVYOg0KQEAgLTQ1MzcsNyArNDU0Niw4IEBADQogICAgICAgfHwgKCEgc3Vm Zml4DQogCSAgJiYgKG1vZHMtPm1vZC0+dHlwZSA9PSBERU1BTkdMRV9DT01Q T05FTlRfUkVTVFJJQ1RfVEhJUw0KIAkgICAgICB8fCBtb2RzLT5tb2QtPnR5 cGUgPT0gREVNQU5HTEVfQ09NUE9ORU5UX1ZPTEFUSUxFX1RISVMNCi0JICAg ICAgfHwgbW9kcy0+bW9kLT50eXBlID09IERFTUFOR0xFX0NPTVBPTkVOVF9D T05TVF9USElTKSkpDQorCSAgICAgIHx8IG1vZHMtPm1vZC0+dHlwZSA9PSBE RU1BTkdMRV9DT01QT05FTlRfQ09OU1RfVEhJUw0KKwkgICAgICB8fCBtb2Rz LT5tb2QtPnR5cGUgPT0gREVNQU5HTEVfQ09NUE9ORU5UX0VYVEVSTl9DKSkp DQogICAgIHsNCiAgICAgICBkX3ByaW50X21vZF9saXN0IChkcGksIG9wdGlv bnMsIG1vZHMtPm5leHQsIHN1ZmZpeCk7DQogICAgICAgcmV0dXJuOw0KQEAg LTQ2MjgsNiArNDYzOCw5IEBADQogICAgIGNhc2UgREVNQU5HTEVfQ09NUE9O RU5UX0NPTlNUX1RISVM6DQogICAgICAgZF9hcHBlbmRfc3RyaW5nIChkcGks ICIgY29uc3QiKTsNCiAgICAgICByZXR1cm47DQorICAgIGNhc2UgREVNQU5H TEVfQ09NUE9ORU5UX0VYVEVSTl9DOg0KKyAgICAgIGRfYXBwZW5kX3N0cmlu ZyAoZHBpLCAiIGV4dGVybiBcIkNcIiIpOw0KKyAgICAgIHJldHVybjsNCiAg ICAgY2FzZSBERU1BTkdMRV9DT01QT05FTlRfVkVORE9SX1RZUEVfUVVBTDoN CiAgICAgICBkX2FwcGVuZF9jaGFyIChkcGksICcgJyk7DQogICAgICAgZF9w cmludF9jb21wIChkcGksIG9wdGlvbnMsIGRfcmlnaHQgKG1vZCkpOw0KQEAg LTQ3MTEsNiArNDcyNCw3IEBADQogCWNhc2UgREVNQU5HTEVfQ09NUE9ORU5U X1JFU1RSSUNUX1RISVM6DQogCWNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX1ZP TEFUSUxFX1RISVM6DQogCWNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX0NPTlNU X1RISVM6DQorCWNhc2UgREVNQU5HTEVfQ09NUE9ORU5UX0VYVEVSTl9DOg0K IAkgIGJyZWFrOw0KIAlkZWZhdWx0Og0KIAkgIGJyZWFrOw0K --8323329-1828720902-1319223574=:6478--