From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 211563858C39 for ; Wed, 6 Oct 2021 21:13:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 211563858C39 Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-581-D6UwHNBzNSmpUYPg7OGI6g-1; Wed, 06 Oct 2021 17:13:12 -0400 X-MC-Unique: D6UwHNBzNSmpUYPg7OGI6g-1 Received: by mail-qt1-f198.google.com with SMTP id 100-20020aed30ed000000b002a6b3dc6465so3245141qtf.13 for ; Wed, 06 Oct 2021 14:13:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to; bh=nH0BmtBmRZybuDxZP22wBh7wMlBmXJQKhWV6i5zYRhs=; b=Bv8NKiWCKOD6w2AEJxDIRcl7re6TaaoVbVf+5xbjXhBmFgyCr+KCx3ZLE+VDG5nvz8 ijTa09I3MduNFVUrz0HPeuPufOLXhdbmiHsHMWpxbO2cVt+5x0tukRtrbuuUuuoNwgi1 2AS5K4ultf98TChs+jTVBmzhraan41luwh3b67BolRg/rW8NZT7R0FFbhA2vPGSQSPzc lWnBQL48PSMq65zaa0LODoKRbQPCAGwk2BoOoQocB6j8sHIpc+MA2I3L3KWy043gj+XB wg8q8hGbU1jtasboztgLk6lx++aCOXaBscYefVmgyXjQNMEnQF628gj2dftGTCYsRSHB 7VCw== X-Gm-Message-State: AOAM531qPnKE2NmXwsK1oDNg0hFcoKVDgfZcyQiRzUrAvOH1OaURDpyu 00KEang50MO3vU9Q/cp/Klcn7Wd84t9X7nbF71BTOpw8eYfcC+UZ75P8v/oeYqMI5ULGklmp5Uj iUyjdNtlrRBtDBf9aLw== X-Received: by 2002:a37:b45:: with SMTP id 66mr374873qkl.78.1633554787432; Wed, 06 Oct 2021 14:13:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxUbw4fMt42Cyy974ZawwqSQ9Ehldt7ljhswh2PI9Ohp7vngINZo7uZ3gfjCqdfdsnOfaSI/A== X-Received: by 2002:a37:b45:: with SMTP id 66mr374857qkl.78.1633554787084; Wed, 06 Oct 2021 14:13:07 -0700 (PDT) Received: from [192.168.1.149] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id p22sm14751721qtw.68.2021.10.06.14.13.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 06 Oct 2021 14:13:06 -0700 (PDT) Message-ID: Date: Wed, 6 Oct 2021 17:13:05 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.2 Subject: Re: [PATCH, v5] c++: Fix up synthetization of defaulted comparison operators on classes with bitfields [PR102490] To: Jakub Jelinek Cc: Patrick Palka , gcc-patches@gcc.gnu.org References: <28ed21ef-fac2-8e93-44f4-f2b5ab287621@idea> <38a8c792-f599-5802-ffe3-a43eaee81479@redhat.com> <20210928203439.GG304296@tucnak> <504786a7-2453-a347-693f-8da18902bc06@redhat.com> <20210929192140.GU304296@tucnak> <20210930172424.GD304296@tucnak> <20211001150717.GQ304296@tucnak> <20211006090640.GD304296@tucnak> From: Jason Merrill In-Reply-To: <20211006090640.GD304296@tucnak> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------q0Tti4mqoBA4BxU3OuOybMYa" Content-Language: en-US X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Oct 2021 21:13:15 -0000 This is a multi-part message in MIME format. --------------q0Tti4mqoBA4BxU3OuOybMYa Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 10/6/21 05:06, Jakub Jelinek wrote: > On Tue, Oct 05, 2021 at 10:40:45PM -0400, Jason Merrill wrote: >> I've switched to handling bases via binfo as discussed on IRC and added >> spaceship-synth14.C to test proper base handling with virtual <=>. Here's >> what I'm committing: > > Thanks a lot. > > I see spaceship-synth8.C is accepted without errors (| LOOKUP_NONVIRTUAL | > LOOKUP_DEFAULTED didn't help it for me back when playing with it), but if I add > > E e1, e2; > auto x = e1 <=> e2; > at the end of it, it is rejected: > spaceship-synth8.C:26:17: error: use of deleted function ‘virtual constexpr std::strong_ordering E::operator<=>(const E&) const’ > 26 | auto x = e1 <=> e2; > | ^~ > spaceship-synth8.C:22:24: note: ‘virtual constexpr std::strong_ordering E::operator<=>(const E&) const’ is implicitly deleted because the default definition would be ill-formed: > 22 | std::strong_ordering operator<=>(const E&) const override = default; > | ^~~~~~~~ > spaceship-synth8.C:21:8: error: no match for ‘operator<=>’ (operand types are ‘const D’ and ‘const D’) > 21 | struct E : D { > | ^ > spaceship-synth8.C:19:32: note: candidate: ‘virtual std::strong_ordering D::operator<=>(const E&) const’ (reversed) > 19 | virtual std::strong_ordering operator<=>(const struct E&) const = 0; > | ^~~~~~~~ > spaceship-synth8.C:19:44: note: no known conversion for argument 1 from ‘const D’ to ‘const E&’ > 19 | virtual std::strong_ordering operator<=>(const struct E&) const = 0; > | ^~~~~~~~~~~~~~~ > > Is that ok (i.e. whether it is accepted or rejected when the operator<=> > is actually not called falls into "no diagnostics required" category)? It's not even NDR, it's implicitly deleted, so it's well-formed until called. > Note, before this fix we were accepting it even with those > E e1, e2; > auto x = e1 <=> e2; > lines in there. Perhaps we want to copy spaceship-synth8.C to another > test that will add those two lines and check for the errors... Done: --------------q0Tti4mqoBA4BxU3OuOybMYa Content-Type: text/x-patch; charset=UTF-8; name="0001-c-One-more-spaceship-test.patch" Content-Disposition: attachment; filename="0001-c-One-more-spaceship-test.patch" Content-Transfer-Encoding: base64 RnJvbSAxNWI1N2MwZmZlOGFjOWQ1NjhlNzZlNzAyNDRjZjcyM2I3MmIxYTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpEYXRl OiBXZWQsIDYgT2N0IDIwMjEgMTc6MTI6MDIgLTA0MDAKU3ViamVjdDogW1BBVENIXSBjKys6IE9u ZSBtb3JlIHNwYWNlc2hpcCB0ZXN0LgpUbzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcKCkpha3Vi IHN1Z2dlc3RlZCBhZGRpbmcgYSB2YXJpYW50IHdoZXJlIHdlIGFjdHVhbGx5IHRyeSB0byBjYWxs IHRoZQppbXBsaWNpdGx5IGRlbGV0ZWQgb3BlcmF0b3IuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZzoKCgkqIGcrKy5kZy9jcHAyYS9zcGFjZXNoaXAtc3ludGg4YS5DOiBOZXcgdGVzdC4KLS0tCiAu Li4vZysrLmRnL2NwcDJhL3NwYWNlc2hpcC1zeW50aDhhLkMgICAgICAgICAgfCAyNSArKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZysrLmRnL2NwcDJhL3NwYWNlc2hpcC1zeW50aDhhLkMK CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9jcHAyYS9zcGFjZXNoaXAtc3ludGg4 YS5DIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvY3BwMmEvc3BhY2VzaGlwLXN5bnRoOGEuQwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDJhMzJkYTc3ZjkKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy9jcHAyYS9zcGFjZXNoaXAtc3ludGg4YS5D CkBAIC0wLDAgKzEsMjUgQEAKKy8vIFBSIGMrKy85NDkwNworLy8geyBkZy1kbyBjb21waWxlIHsg dGFyZ2V0IGMrKzIwIH0gfQorCituYW1lc3BhY2Ugc3RkIHsgc3RydWN0IHN0cm9uZ19vcmRlcmlu ZyB7CisgIGludCBfdjsKKyAgY29uc3RleHByIHN0cm9uZ19vcmRlcmluZyAoaW50IHYpIDpfdih2 KSB7fQorICBjb25zdGV4cHIgb3BlcmF0b3IgaW50ICh2b2lkKSBjb25zdCB7IHJldHVybiBfdjsg fQorICBzdGF0aWMgY29uc3Qgc3Ryb25nX29yZGVyaW5nIGxlc3M7CisgIHN0YXRpYyBjb25zdCBz dHJvbmdfb3JkZXJpbmcgZXF1YWw7CisgIHN0YXRpYyBjb25zdCBzdHJvbmdfb3JkZXJpbmcgZ3Jl YXRlcjsKK307Citjb25zdGV4cHIgc3Ryb25nX29yZGVyaW5nIHN0cm9uZ19vcmRlcmluZzo6bGVz cyA9IC0xOworY29uc3RleHByIHN0cm9uZ19vcmRlcmluZyBzdHJvbmdfb3JkZXJpbmc6OmVxdWFs ID0gMDsKK2NvbnN0ZXhwciBzdHJvbmdfb3JkZXJpbmcgc3Ryb25nX29yZGVyaW5nOjpncmVhdGVy ID0gMTsKK30KKworc3RydWN0IEU7CitzdHJ1Y3QgRCB7CisgIHZpcnR1YWwgc3RkOjpzdHJvbmdf b3JkZXJpbmcgb3BlcmF0b3I8PT4oY29uc3Qgc3RydWN0IEUmKSBjb25zdCA9IDA7Cit9Oworc3Ry dWN0IEUgOiBEIHsJCQkJCQkJICAgICAgIC8vIHsgZGctZXJyb3IgIm5vIG1hdGNoIiB9CisgIHN0 ZDo6c3Ryb25nX29yZGVyaW5nIG9wZXJhdG9yPD0+KGNvbnN0IEUmKSBjb25zdCBvdmVycmlkZSA9 IGRlZmF1bHQ7IC8vIHsgZGctbWVzc2FnZSAiZGVmYXVsdCIgfQorfTsKKworYXV0byB4ID0gRSgp IDw9PiBFKCk7CQkvLyB7IGRnLWVycm9yICJkZWxldGVkIiB9Ci0tIAoyLjI3LjAKCg== --------------q0Tti4mqoBA4BxU3OuOybMYa--