From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9973 invoked by alias); 5 Aug 2014 11:49:34 -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 9964 invoked by uid 89); 5 Aug 2014 11:49:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.6 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: aserp1040.oracle.com Received: from aserp1040.oracle.com (HELO aserp1040.oracle.com) (141.146.126.69) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Tue, 05 Aug 2014 11:49:32 +0000 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s75BnTV7014083 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 5 Aug 2014 11:49:30 GMT Received: from userz7021.oracle.com (userz7021.oracle.com [156.151.31.85]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s75BnS9S004844 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 5 Aug 2014 11:49:28 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s75BnR1F020761; Tue, 5 Aug 2014 11:49:27 GMT Received: from [192.168.1.4] (/79.52.196.68) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 05 Aug 2014 04:49:27 -0700 Message-ID: <53E0C4C4.3010101@oracle.com> Date: Tue, 05 Aug 2014 11:49:00 -0000 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Jason Merrill , "gcc-patches@gcc.gnu.org" Subject: Re: [C++ Patch/RFC] PR 43906 References: <53DFB3AE.1030706@oracle.com> <53DFF100.6010105@redhat.com> <53E010B2.6050703@oracle.com> <53E03A36.5080203@redhat.com> In-Reply-To: <53E03A36.5080203@redhat.com> Content-Type: multipart/mixed; boundary="------------000404060406000301030104" X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00342.txt.bz2 This is a multi-part message in MIME format. --------------000404060406000301030104 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1363 Hi, On 08/05/2014 03:58 AM, Jason Merrill wrote: > On 08/04/2014 07:01 PM, Paolo Carlini wrote: >> In fact I wondered about that a few minutes after sending my message... >> And this is what I figured out: normally we have hard errors from >> composite_pointer_type (eg, try scalar types, class types), even for >> null values. The only exception I have been able to find earlier today >> is that of pointer to the same function type, eg: >> >> extern void z(); >> typedef void (*ptr)(); >> void i() { if ( z != (ptr)0 ); } >> >> but in this case the C front-end too doesn't warn. > I don't see why we wouldn't want to warn in this case; it's still the > case thet the comparison will always be false. In general, I agree of course. I was trying to understand if keeping the issue as minimally one of consistency with the C front-end simplified it. > We can also see this situation for non-function pointers: > > void f() > { > int i; > if (&i != (int*)0); > } Sure. Then, however, we must be careful about the actual pointer types, otherwise we change hard errors to warnings. And void* is an exception to the general rule. I tried using ptr_reasonably_similar to avoid the explicit call of comptypes + separate VOID_TYPE_P, but unfortunately it appears too loose about at least pointers to function types. Thanks! Paolo. ////////////////////////// --------------000404060406000301030104 Content-Type: text/plain; charset=UTF-8; name="patch_43906_3" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch_43906_3" Content-length: 5873 SW5kZXg6IGNwL3R5cGVjay5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGNwL3R5cGVjay5jCShyZXZpc2lvbiAyMTM2MzEpCisrKyBjcC90eXBlY2su Ywkod29ya2luZyBjb3B5KQpAQCAtNDM1MywxMiArNDM1MywxNCBAQCBjcF9i dWlsZF9iaW5hcnlfb3AgKGxvY2F0aW9uX3QgbG9jYXRpb24sCiAJICAmJiAo Y29kZTEgPT0gSU5URUdFUl9UWVBFIHx8IGNvZGUxID09IFJFQUxfVFlQRQog CSAgICAgIHx8IGNvZGUxID09IENPTVBMRVhfVFlQRSB8fCBjb2RlMSA9PSBF TlVNRVJBTF9UWVBFKSkKIAlzaG9ydF9jb21wYXJlID0gMTsKLSAgICAgIGVs c2UgaWYgKChjb2RlMCA9PSBQT0lOVEVSX1RZUEUgJiYgY29kZTEgPT0gUE9J TlRFUl9UWVBFKQotCSAgICAgICB8fCAoVFlQRV9QVFJEQVRBTUVNX1AgKHR5 cGUwKSAmJiBUWVBFX1BUUkRBVEFNRU1fUCAodHlwZTEpKSkKLQlyZXN1bHRf dHlwZSA9IGNvbXBvc2l0ZV9wb2ludGVyX3R5cGUgKHR5cGUwLCB0eXBlMSwg b3AwLCBvcDEsCi0JCQkJCSAgICAgIENQT19DT01QQVJJU09OLCBjb21wbGFp bik7CiAgICAgICBlbHNlIGlmICgoY29kZTAgPT0gUE9JTlRFUl9UWVBFIHx8 IFRZUEVfUFRSREFUQU1FTV9QICh0eXBlMCkpCi0JICAgICAgICYmIG51bGxf cHRyX2NzdF9wIChvcDEpKQorCSAgICAgICAmJiAobnVsbF9wdHJfY3N0X3Ag KG9wMSkKKwkJICAgLyogSGFuZGxlLCBlZywgKHZvaWQqKTAgKGMrKy80Mzkw NiksIGFuZCBtb3JlLiAgKi8KKwkJICAgfHwgKFRZUEVfUFRSX1AgKHR5cGUx KSAmJiBpbnRlZ2VyX3plcm9wIChvcDEpCisJCSAgICAgICAmJiAoVk9JRF9U WVBFX1AgKFRSRUVfVFlQRSAodHlwZTEpKQorCQkJICAgfHwgY29tcHR5cGVz IChUWVBFX01BSU5fVkFSSUFOVCAoVFJFRV9UWVBFICh0eXBlMCkpLAorCQkJ CQkgVFlQRV9NQUlOX1ZBUklBTlQgKFRSRUVfVFlQRSAodHlwZTEpKSwKKwkJ CQkJIENPTVBBUkVfQkFTRSB8IENPTVBBUkVfREVSSVZFRCkpKSkpCiAJewog CSAgaWYgKFRSRUVfQ09ERSAob3AwKSA9PSBBRERSX0VYUFIKIAkgICAgICAm JiBkZWNsX3dpdGhfbm9ubnVsbF9hZGRyX3AgKFRSRUVfT1BFUkFORCAob3Aw LCAwKSkpCkBAIC00MzcxLDcgKzQzNzMsMTMgQEAgY3BfYnVpbGRfYmluYXJ5 X29wIChsb2NhdGlvbl90IGxvY2F0aW9uLAogCSAgcmVzdWx0X3R5cGUgPSB0 eXBlMDsKIAl9CiAgICAgICBlbHNlIGlmICgoY29kZTEgPT0gUE9JTlRFUl9U WVBFIHx8IFRZUEVfUFRSREFUQU1FTV9QICh0eXBlMSkpCi0JICAgICAgICYm IG51bGxfcHRyX2NzdF9wIChvcDApKQorCSAgICAgICAmJiAobnVsbF9wdHJf Y3N0X3AgKG9wMCkKKwkJICAgLyogSGFuZGxlLCBlZywgKHZvaWQqKTAgKGMr Ky80MzkwNiksIGFuZCBtb3JlLiAgKi8KKwkJICAgfHwgKFRZUEVfUFRSX1Ag KHR5cGUwKSAmJiBpbnRlZ2VyX3plcm9wIChvcDApCisJCSAgICAgICAmJiAo Vk9JRF9UWVBFX1AgKFRSRUVfVFlQRSAodHlwZTApKQorCQkJICAgfHwgY29t cHR5cGVzIChUWVBFX01BSU5fVkFSSUFOVCAoVFJFRV9UWVBFICh0eXBlMCkp LAorCQkJCQkgVFlQRV9NQUlOX1ZBUklBTlQgKFRSRUVfVFlQRSAodHlwZTEp KSwKKwkJCQkJIENPTVBBUkVfQkFTRSB8IENPTVBBUkVfREVSSVZFRCkpKSkp CiAJewogCSAgaWYgKFRSRUVfQ09ERSAob3AxKSA9PSBBRERSX0VYUFIgCiAJ ICAgICAgJiYgZGVjbF93aXRoX25vbm51bGxfYWRkcl9wIChUUkVFX09QRVJB TkQgKG9wMSwgMCkpKQpAQCAtNDM4Myw2ICs0MzkxLDEwIEBAIGNwX2J1aWxk X2JpbmFyeV9vcCAobG9jYXRpb25fdCBsb2NhdGlvbiwKIAkgICAgfQogCSAg cmVzdWx0X3R5cGUgPSB0eXBlMTsKIAl9CisgICAgICBlbHNlIGlmICgoY29k ZTAgPT0gUE9JTlRFUl9UWVBFICYmIGNvZGUxID09IFBPSU5URVJfVFlQRSkK KwkgICAgICAgfHwgKFRZUEVfUFRSREFUQU1FTV9QICh0eXBlMCkgJiYgVFlQ RV9QVFJEQVRBTUVNX1AgKHR5cGUxKSkpCisJcmVzdWx0X3R5cGUgPSBjb21w b3NpdGVfcG9pbnRlcl90eXBlICh0eXBlMCwgdHlwZTEsIG9wMCwgb3AxLAor CQkJCQkgICAgICBDUE9fQ09NUEFSSVNPTiwgY29tcGxhaW4pOwogICAgICAg ZWxzZSBpZiAobnVsbF9wdHJfY3N0X3AgKG9wMCkgJiYgbnVsbF9wdHJfY3N0 X3AgKG9wMSkpCiAJLyogT25lIG9mIHRoZSBvcGVyYW5kcyBtdXN0IGJlIG9m IG51bGxwdHJfdCB0eXBlLiAgKi8KICAgICAgICAgcmVzdWx0X3R5cGUgPSBU UkVFX1RZUEUgKG51bGxwdHJfbm9kZSk7CkluZGV4OiB0ZXN0c3VpdGUvZysr LmRnL3dhcm4vV2FkZHJlc3MtMS5DCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHRlc3RzdWl0ZS9nKysuZGcvd2Fybi9XYWRkcmVzcy0xLkMJKHJldmlz aW9uIDApCisrKyB0ZXN0c3VpdGUvZysrLmRnL3dhcm4vV2FkZHJlc3MtMS5D CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8vIFBSIGMrKy80 MzkwNgorLy8geyBkZy1vcHRpb25zICItV2FkZHJlc3MiIH0KKworZXh0ZXJu IHZvaWQgeigpOwordHlwZWRlZiB2b2lkICgqcHRyZikgKCk7Cit0eXBlZGVm IGludCAoKnB0cmZuKSAoaW50KTsKK2ludCBuOworY29uc3QgaW50IG0gPSAx Oworc3RydWN0IFMgeyB9Oworc3RydWN0IFQgOiBTIHsgfTsKK3N0cnVjdCBV OworUyBzOworVCB0OworZG91YmxlIGQ7CisKK3ZvaWQgZigpICB7IGlmICh6 KSB6KCk7IH0gICAgICAgICAgICAgICAvLyB7IGRnLXdhcm5pbmcgImFkZHJl c3MiIH0KKwordm9pZCBnbCgpIHsgaWYgKHogIT0gMCkgeigpOyB9ICAgICAg ICAgIC8vIHsgZGctd2FybmluZyAiYWRkcmVzcyIgfQordm9pZCBobCgpIHsg aWYgKHogIT0gKHB0cmYpMCkgeigpOyB9ICAgIC8vIHsgZGctd2FybmluZyAi YWRkcmVzcyIgfQordm9pZCBpbCgpIHsgaWYgKHogIT0gKHZvaWQqKTApIHoo KTsgfSAgIC8vIHsgZGctd2FybmluZyAiYWRkcmVzcyIgfQordm9pZCBqbCgp IHsgaWYgKCZuICE9IChpbnQqKTApIHooKTsgfSAgIC8vIHsgZGctd2Fybmlu ZyAiYWRkcmVzcyIgfQordm9pZCBrbCgpIHsgaWYgKCZtICE9IChpbnQqKTAp IHooKTsgfSAgIC8vIHsgZGctd2FybmluZyAiYWRkcmVzcyIgfQordm9pZCBs bCgpIHsgaWYgKCZzICE9IChUKikwKSB6KCk7IH0gICAgIC8vIHsgZGctd2Fy bmluZyAiYWRkcmVzcyIgfQordm9pZCBtbCgpIHsgaWYgKCZ0ICE9IChTKikw KSB6KCk7IH0gICAgIC8vIHsgZGctd2FybmluZyAiYWRkcmVzcyIgfQorCit2 b2lkIG5sKCkgeyBpZiAoeiAhPSAoUyopMCkgeigpOyB9ICAgICAgLy8geyBk Zy1lcnJvciAiY29tcGFyaXNvbiIgfQordm9pZCBwbCgpIHsgaWYgKHogIT0g KHB0cmZuKTApIHooKTsgfSAgIC8vIHsgZGctZXJyb3IgImNvbXBhcmlzb24i IH0KK3ZvaWQgcWwoKSB7IGlmICgmZCAhPSAoaW50KikwKSB6KCk7IH0gICAv LyB7IGRnLWVycm9yICJjb21wYXJpc29uIiB9Cit2b2lkIHJsKCkgeyBpZiAo JnMgIT0gKFUqKTApIHooKTsgfSAgICAgLy8geyBkZy1lcnJvciAiY29tcGFy aXNvbiIgfQorCit2b2lkIGdyKCkgeyBpZiAoMCAhPSB6KSB6KCk7IH0gICAg ICAgICAgLy8geyBkZy13YXJuaW5nICJhZGRyZXNzIiB9Cit2b2lkIGhyKCkg eyBpZiAoKHB0cmYpMCAhPSB6KSB6KCk7IH0gICAgLy8geyBkZy13YXJuaW5n ICJhZGRyZXNzIiB9Cit2b2lkIGlyKCkgeyBpZiAoKHZvaWQqKTAgIT0geikg eigpOyB9ICAgLy8geyBkZy13YXJuaW5nICJhZGRyZXNzIiB9Cit2b2lkIGpy KCkgeyBpZiAoKGludCopMCAhPSAmbikgeigpOyB9ICAgLy8geyBkZy13YXJu aW5nICJhZGRyZXNzIiB9Cit2b2lkIGtyKCkgeyBpZiAoKGludCopMCAhPSAm bSkgeigpOyB9ICAgLy8geyBkZy13YXJuaW5nICJhZGRyZXNzIiB9Cit2b2lk IGxyKCkgeyBpZiAoKFQqKTAgIT0gJnMpIHooKTsgfSAgICAgLy8geyBkZy13 YXJuaW5nICJhZGRyZXNzIiB9Cit2b2lkIG1yKCkgeyBpZiAoKFMqKTAgIT0g JnQpIHooKTsgfSAgICAgLy8geyBkZy13YXJuaW5nICJhZGRyZXNzIiB9CisK K3ZvaWQgbnIoKSB7IGlmICgoUyopMCAhPSB6KSB6KCk7IH0gICAgICAvLyB7 IGRnLWVycm9yICJjb21wYXJpc29uIiB9Cit2b2lkIHByKCkgeyBpZiAoKHB0 cmZuKTAgIT0geikgeigpOyB9ICAgLy8geyBkZy1lcnJvciAiY29tcGFyaXNv biIgfQordm9pZCBxcigpIHsgaWYgKChpbnQqKTAgIT0gJmQpIHooKTsgfSAg IC8vIHsgZGctZXJyb3IgImNvbXBhcmlzb24iIH0KK3ZvaWQgcnIoKSB7IGlm ICgoVSopMCAhPSAmcykgeigpOyB9ICAgICAvLyB7IGRnLWVycm9yICJjb21w YXJpc29uIiB9Cg== --------------000404060406000301030104--