From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28471 invoked by alias); 4 Jul 2019 12:56:55 -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 28409 invoked by uid 89); 4 Jul 2019 12:56:54 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-9.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=replying, precisely, nonexistent, UD:call.c X-HELO: aserp2120.oracle.com Received: from aserp2120.oracle.com (HELO aserp2120.oracle.com) (141.146.126.78) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 04 Jul 2019 12:56:53 +0000 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x64CsEXo056511; Thu, 4 Jul 2019 12:56:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : references : from : message-id : date : mime-version : in-reply-to : content-type; s=corp-2018-07-02; bh=C4lgGfKwqYsNm4CFID4VKnFEK+apCIi51IJbtgHc7XI=; b=OarSxcbhZren27+ilb+IQzaGJVkpXC55u3mjzFa/8Nhh6AAYbRTB+l4vDNDx3g9LdEjq muGDKfU6YhZ8XDY6PiwGbdw975EJMd1rBFxhKv0et9uJHr/KXFSDvszgkq8L4QgfBfZL 1nBB0x6Wzkcnd299j3Zdf74Rd7eLbciJxx7a9qKaXrONq8DCZB6pKSGDXMJA3XH/T7Do aVFs2C/lO+D2MwGetLCIfzGnJuI4SwAuH9d+bFQi9jnFQm6WnzrzJ+Za1zgQ0SnOLBw/ rRdCiqO+YeiHE6qarwgvIZLTsMsWpKtA86sOCT2NBnsoNigLBhLFa7ZeKj78aF7B7aqL pA== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 2te5tbxtc3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2019 12:56:51 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x64CqnKj122623; Thu, 4 Jul 2019 12:56:50 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3020.oracle.com with ESMTP id 2th9ebyddh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 04 Jul 2019 12:56:50 +0000 Received: from abhmp0002.oracle.com (abhmp0002.oracle.com [141.146.116.8]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x64CuopZ009701; Thu, 4 Jul 2019 12:56:50 GMT Received: from [192.168.1.4] (/79.37.212.147) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 04 Jul 2019 05:56:50 -0700 Subject: Re: [C++ Patch] PR 90909 ("[10 Regression] call devirtualized to pure virtual") To: Jason Merrill , "gcc-patches@gcc.gnu.org" References: <44e13170-109c-e540-9fc5-0c8e24737a96@oracle.com> <774030a9-7b07-b1e0-3219-b6acbf7f3240@redhat.com> <5bf0b3c7-4010-b077-8cf1-9f2935d52931@oracle.com> <2a75dae4-df42-2597-767b-4f4180a9b140@oracle.com> <358ac850-8d4c-99b2-88c6-6e06a2f1c03f@redhat.com> From: Paolo Carlini Message-ID: <22c49b96-f534-5a93-bed2-2af7a5e60a2a@oracle.com> Date: Thu, 04 Jul 2019 13:23:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <358ac850-8d4c-99b2-88c6-6e06a2f1c03f@redhat.com> Content-Type: multipart/mixed; boundary="------------7CBDE88C7A94EFF301A366FE" X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg00376.txt.bz2 This is a multi-part message in MIME format. --------------7CBDE88C7A94EFF301A366FE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 1061 Hi, On 27/06/19 23:19, Jason Merrill wrote: > Ah, thanks.  Then perhaps we want to change the CLASSTYPE_FINAL in > build_over_call to resolves_to_fixed_type_p (arg), to also handle the > other reasons we might know the dynamic type of the argument, and > remove the related code from build_new_method_call_1? > > You could avoid needing to move the conditional lower by comparing > DECL_CONTEXT (fn) and BINFO_TYPE (cand->conversion_path) rather than > parmtype and TREE_TYPE (converted_arg). Sorry for late replying, a few days off. Anyway, great, it looks like we are reaching a nice synthesis. I must admit that until yesterday I hadn't noticed that Fabien dealt precisely with using declarations in order to fix c++/11750, thus the existing check in build_new_method_call_1 is exactly what we need. The below does that and passes testing, in it I didn't keep the checks of DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL) which don't seem necessary, might avoid function calls, though. Let me know... Thanks, Paolo. //////////////////// --------------7CBDE88C7A94EFF301A366FE Content-Type: text/plain; charset=UTF-8; name="patch_67184_new" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch_67184_new" Content-length: 3457 SW5kZXg6IGNwL2NhbGwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBj cC9jYWxsLmMJKHJldmlzaW9uIDI3MzA3NikKKysrIGNwL2NhbGwuYwkod29y a2luZyBjb3B5KQpAQCAtODI0MSwxMCArODI0MSwxNyBAQCBidWlsZF9vdmVy X2NhbGwgKHN0cnVjdCB6X2NhbmRpZGF0ZSAqY2FuZCwgaW50IGZsYQogCSAg ICByZXR1cm4gZXJyb3JfbWFya19ub2RlOwogCX0KIAotICAgICAgLyogU2Vl IGlmIHRoZSBmdW5jdGlvbiBtZW1iZXIgb3IgdGhlIHdob2xlIGNsYXNzIHR5 cGUgaXMgZGVjbGFyZWQKLQkgZmluYWwgYW5kIHRoZSBjYWxsIGNhbiBiZSBk ZXZpcnR1YWxpemVkLiAgKi8KKyAgICAgIC8qIE9wdGltaXplIGF3YXkgdnRh YmxlIGxvb2t1cCBpZiB3ZSBrbm93IHRoYXQgdGhpcworCSBmdW5jdGlvbiBj YW4ndCBiZSBvdmVycmlkZGVuLiAgV2UgbmVlZCB0byBjaGVjayBpZgorCSB0 aGUgY29udGV4dCBhbmQgdGhlIHR5cGUgd2hlcmUgd2UgZm91bmQgZm4gYXJl IHRoZSBzYW1lLAorCSBhY3R1YWxseSBGTiBtaWdodCBiZSBkZWZpbmVkIGlu IGEgZGlmZmVyZW50IGNsYXNzCisJIHR5cGUgYmVjYXVzZSBvZiBhIHVzaW5n LWRlY2xhcmF0aW9uLiBJbiB0aGlzIGNhc2UsIHdlCisJIGRvIG5vdCB3YW50 IHRvIHBlcmZvcm0gYSBub24tdmlydHVhbCBjYWxsLiAgTm90ZSB0aGF0CisJ IHJlc29sdmVzX3RvX2ZpeGVkX3R5cGVfcCBjaGVja3MgQ0xBU1NUWVBFX0ZJ TkFMIHRvby4gICovCiAgICAgICBpZiAoREVDTF9GSU5BTF9QIChmbikKLQkg IHx8IENMQVNTVFlQRV9GSU5BTCAoVFlQRV9NRVRIT0RfQkFTRVRZUEUgKFRS RUVfVFlQRSAoZm4pKSkpCisJICB8fCAocmVzb2x2ZXNfdG9fZml4ZWRfdHlw ZV9wIChhcmcsIDApCisJICAgICAgJiYgc2FtZV90eXBlX2lnbm9yaW5nX3Rv cF9sZXZlbF9xdWFsaWZpZXJzX3AKKwkgICAgICAoREVDTF9DT05URVhUIChm biksIEJJTkZPX1RZUEUgKGNhbmQtPmNvbnZlcnNpb25fcGF0aCkpKSkgCiAJ ZmxhZ3MgfD0gTE9PS1VQX05PTlZJUlRVQUw7CiAKICAgICAgIC8qIFtjbGFz cy5tZmN0Lm5vbnN0YXRpY106IElmIGEgbm9uc3RhdGljIG1lbWJlciBmdW5j dGlvbiBvZiBhIGNsYXNzCkBAIC05ODQ1LDE3ICs5ODUyLDYgQEAgYnVpbGRf bmV3X21ldGhvZF9jYWxsXzEgKHRyZWUgaW5zdGFuY2UsIHRyZWUgZm5zLAog CiAJICBpZiAoY2FsbCAhPSBlcnJvcl9tYXJrX25vZGUpCiAJICAgIHsKLQkg ICAgICAvKiBPcHRpbWl6ZSBhd2F5IHZ0YWJsZSBsb29rdXAgaWYgd2Uga25v dyB0aGF0IHRoaXMKLQkJIGZ1bmN0aW9uIGNhbid0IGJlIG92ZXJyaWRkZW4u ICBXZSBuZWVkIHRvIGNoZWNrIGlmCi0JCSB0aGUgY29udGV4dCBhbmQgdGhl IHR5cGUgd2hlcmUgd2UgZm91bmQgZm4gYXJlIHRoZSBzYW1lLAotCQkgYWN0 dWFsbHkgRk4gbWlnaHQgYmUgZGVmaW5lZCBpbiBhIGRpZmZlcmVudCBjbGFz cwotCQkgdHlwZSBiZWNhdXNlIG9mIGEgdXNpbmctZGVjbGFyYXRpb24uIElu IHRoaXMgY2FzZSwgd2UKLQkJIGRvIG5vdCB3YW50IHRvIHBlcmZvcm0gYSBu b24tdmlydHVhbCBjYWxsLiAgKi8KLQkgICAgICBpZiAoREVDTF9WSU5ERVgg KGZuKSAmJiAhIChmbGFncyAmIExPT0tVUF9OT05WSVJUVUFMKQotCQkgICYm IHNhbWVfdHlwZV9pZ25vcmluZ190b3BfbGV2ZWxfcXVhbGlmaWVyc19wCi0J CSAgKERFQ0xfQ09OVEVYVCAoZm4pLCBCSU5GT19UWVBFIChiaW5mbykpCi0J CSAgJiYgcmVzb2x2ZXNfdG9fZml4ZWRfdHlwZV9wIChpbnN0YW5jZSwgMCkp Ci0JCWZsYWdzIHw9IExPT0tVUF9OT05WSVJUVUFMOwogICAgICAgICAgICAg ICBpZiAoZXhwbGljaXRfdGFyZ3MpCiAgICAgICAgICAgICAgICAgZmxhZ3Mg fD0gTE9PS1VQX0VYUExJQ0lUX1RNUExfQVJHUzsKIAkgICAgICAvKiBOb3cg d2Uga25vdyB3aGF0IGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZC4gICovCklu ZGV4OiB0ZXN0c3VpdGUvZysrLmRnL290aGVyL2ZpbmFsNC5DCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvb3RoZXIvZmlu YWw0LkMJKG5vbmV4aXN0ZW50KQorKysgdGVzdHN1aXRlL2crKy5kZy9vdGhl ci9maW5hbDQuQwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACisv LyBQUiBjKysvNjcxODQKKy8vIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBj KysxMSB9IH0KKy8vIHsgZGctb3B0aW9ucyAiLWZkdW1wLXRyZWUtb3JpZ2lu YWwiICB9CisKK3N0cnVjdCBCCit7CisgIHZpcnR1YWwgdm9pZCBvcGVyYXRv cigpKCk7CisgIHZpcnR1YWwgb3BlcmF0b3IgaW50KCk7CisgIHZpcnR1YWwg aW50IG9wZXJhdG9yKysoKTsKK307CisKK3N0cnVjdCBEIGZpbmFsIDogQiB7 IH07CisKK3ZvaWQgZm9vKEQmIGQpIHsgZCgpOyBpbnQgdCA9IGQ7ICsrZDsg fQorCisvLyB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIk9C Sl9UWVBFX1JFRiIgMCAib3JpZ2luYWwiIH0gfQo= --------------7CBDE88C7A94EFF301A366FE--