From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf41.google.com (mail-qv1-xf41.google.com [IPv6:2607:f8b0:4864:20::f41]) by sourceware.org (Postfix) with ESMTPS id 6E39F38708A5; Tue, 29 Sep 2020 16:35:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6E39F38708A5 Received: by mail-qv1-xf41.google.com with SMTP id di5so2557113qvb.13; Tue, 29 Sep 2020 09:35:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=T5cxAhEYSykrz0vFvN7B4S7cEPVXS1br/ttJqkE/8b4=; b=PZ0hrgUOzzh24DvFpLFsfrPnaac7vq6WnrEIFATM3fJdDzJDRCuD9pPBaVRFekfSBI c5F3cgGAYJgfXbIsH+C/ByZUqOA9ZErXY5rXwW1UOfovyJzoiJVvE2dieq5By+7WWibe Y3xCDGG3kp1k6wka2eqcIJ00uwDyynqGfu45j0YpApqjFIyx8dyjebT5C09nDo40s91I 1wbX7TMxFXCW1LZNDqDxosUUTu/ya76c1URarFIL4m0lIq2Un+5L3Y9fTnIpLDgVbcGf b3xliyqygUBgvOqqqiCbJmuhQshlM2GkSEtZbedpp7oWVWfUPACxxGeYEe5F/FIVX1SM ZphQ== X-Gm-Message-State: AOAM532x1FSFWJTN6WibLkV2Sc7F7oDhjgWxEGVDIWgwOmi2jZCkk6sr Hq5EzmOb4cJIjUeL0xVU348ZRTESbRZxAmo6IK4= X-Google-Smtp-Source: ABdhPJyhtr475heG3AAPctSz+xJID+yLdYQV2wUt9INvh8rHVTEqROSc17oNrvxztzvliVs97TYf0kQvkqOkABC2LaE= X-Received: by 2002:a0c:bec4:: with SMTP id f4mr5366000qvj.14.1601397344017; Tue, 29 Sep 2020 09:35:44 -0700 (PDT) MIME-Version: 1.0 References: <20200929112043.GL3946@redhat.com> In-Reply-To: <20200929112043.GL3946@redhat.com> From: Ville Voutilainen Date: Tue, 29 Sep 2020 19:35:32 +0300 Message-ID: Subject: Re: [PATCH] libstdc++: Diagnose visitors with different return types [PR95904] To: Jonathan Wakely Cc: gcc-patches List , "libstdc++" Content-Type: multipart/mixed; boundary="000000000000d5d5cd05b0765f40" X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Tue, 29 Sep 2020 16:35:45 -0000 --000000000000d5d5cd05b0765f40 Content-Type: text/plain; charset="UTF-8" On Tue, 29 Sep 2020 at 14:20, Jonathan Wakely wrote: > I think this is what we want: > > template > constexpr inline __same_types = (is_same_v<_Tp, _Types> && ...); > > is_same_v is very cheap, it uses the built-in directly, so you don't > need to instantiate any class templates at all. > > >+ > >+ template > > typename not class please. > > >+ decltype(auto) __check_visitor_result(_Visitor&& __vis, > > New line after the decltype(auto) please, not in the middle of the > parameter list. Aye. --000000000000d5d5cd05b0765f40 Content-Type: text/x-patch; charset="US-ASCII"; name="pr95904_2.diff" Content-Disposition: attachment; filename="pr95904_2.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfo6ly6a0 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC92YXJpYW50IGIvbGlic3RkYysr LXYzL2luY2x1ZGUvc3RkL3ZhcmlhbnQKaW5kZXggZGQ4ODQ3Y2Y4MjkuLjZmNjQ3ZDYyMmM0IDEw MDY0NAotLS0gYS9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvdmFyaWFudAorKysgYi9saWJzdGRj KystdjMvaW5jbHVkZS9zdGQvdmFyaWFudApAQCAtMTgyLDcgKzE4Miw3IEBAIG5hbWVzcGFjZSBf X3ZhcmlhbnQKICAgLy8gdXNlZCBmb3IgcmF3IHZpc2l0YXRpb24gd2l0aCBpbmRpY2VzIHBhc3Nl ZCBpbgogICBzdHJ1Y3QgX192YXJpYW50X2lkeF9jb29raWUgeyB1c2luZyB0eXBlID0gX192YXJp YW50X2lkeF9jb29raWU7IH07CiAgIC8vIFVzZWQgdG8gZW5hYmxlIGRlZHVjdGlvbiAoYW5kIHNh bWUtdHlwZSBjaGVja2luZykgZm9yIHN0ZDo6dmlzaXQ6Ci0gIHRlbXBsYXRlPHR5cGVuYW1lPiBz dHJ1Y3QgX19kZWR1Y2VfdmlzaXRfcmVzdWx0IHsgfTsKKyAgdGVtcGxhdGU8dHlwZW5hbWUgX1Rw PiBzdHJ1Y3QgX19kZWR1Y2VfdmlzaXRfcmVzdWx0IHsgdXNpbmcgdHlwZSA9IF9UcDsgfTsKIAog ICAvLyBWaXNpdCB2YXJpYW50cyB0aGF0IG1pZ2h0IGJlIHZhbHVlbGVzcy4KICAgdGVtcGxhdGU8 dHlwZW5hbWUgX1Zpc2l0b3IsIHR5cGVuYW1lLi4uIF9WYXJpYW50cz4KQEAgLTEwMTcsNyArMTAx NywyMiBAQCBuYW1lc3BhY2UgX192YXJpYW50CiAKICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0 bwogICAgICAgX1NfYXBwbHkoKQotICAgICAgeyByZXR1cm4gX0FycmF5X3R5cGV7Jl9fdmlzaXRf aW52b2tlfTsgfQorICAgICAgeworCWNvbnN0ZXhwciBib29sIF9fdmlzaXRfcmV0X3R5cGVfbWlz bWF0Y2ggPQorCSAgX0FycmF5X3R5cGU6Ol9fcmVzdWx0X2lzX2RlZHVjZWQ6OnZhbHVlCisJICAm JiAhaXNfc2FtZV92PHR5cGVuYW1lIF9SZXN1bHRfdHlwZTo6dHlwZSwKKwkJCWRlY2x0eXBlKF9f dmlzaXRfaW52b2tlKHN0ZDo6ZGVjbHZhbDxfVmlzaXRvcj4oKSwKKwkJCQkJCXN0ZDo6ZGVjbHZh bDxfVmFyaWFudHM+KCkuLi4pKT47CisJaWYgY29uc3RleHByIChfX3Zpc2l0X3JldF90eXBlX21p c21hdGNoKQorCSAgeworCSAgICBzdGF0aWNfYXNzZXJ0KCFfX3Zpc2l0X3JldF90eXBlX21pc21h dGNoLAorCQkJICAic3RkOjp2aXNpdCByZXF1aXJlcyB0aGUgdmlzaXRvciB0byBoYXZlIHRoZSBz YW1lICIKKwkJCSAgInJldHVybiB0eXBlIGZvciBhbGwgYWx0ZXJuYXRpdmVzIG9mIGEgdmFyaWFu dCIpOworCSAgICByZXR1cm4gX19ub25lc3VjaHt9OworCSAgfQorCWVsc2UKKwkgIHJldHVybiBf QXJyYXlfdHlwZXsmX192aXNpdF9pbnZva2V9OworICAgICAgfQogICAgIH07CiAKICAgdGVtcGxh dGU8dHlwZW5hbWUgX1Jlc3VsdF90eXBlLCB0eXBlbmFtZSBfVmlzaXRvciwgdHlwZW5hbWUuLi4g X1ZhcmlhbnRzPgpAQCAtMTY5Miw2ICsxNzA3LDI2IEBAIG5hbWVzcGFjZSBfX3ZhcmlhbnQKIAkJ CSAgIHN0ZDo6Zm9yd2FyZDxfVmFyaWFudHM+KF9fdmFyaWFudHMpLi4uKTsKICAgICB9CiAKKyAg dGVtcGxhdGU8dHlwZW5hbWUgX1RwLCB0eXBlbmFtZS4uLiBfVHlwZXM+CisgICAgIGNvbnN0ZXhw ciBpbmxpbmUgYm9vbCBfX3NhbWVfdHlwZXMgPSAoaXNfc2FtZV92PF9UcCwgX1R5cGVzPiAmJiAu Li4pOworCisgIHRlbXBsYXRlIDx1bnNpZ25lZCBsb25nIGludCBfSWR4LCB0eXBlbmFtZSBfVmlz aXRvciwgdHlwZW5hbWUgX1ZhcmlhbnQ+CisgICAgZGVjbHR5cGUoYXV0bykKKyAgICBfX2NoZWNr X3Zpc2l0b3JfcmVzdWx0KF9WaXNpdG9yJiYgX192aXMsIF9WYXJpYW50JiYgX192YXJpYW50KQor ICAgIHsKKyAgICAgIHJldHVybiBzdGQ6OmZvcndhcmQ8X1Zpc2l0b3I+KF9fdmlzKSgKKyAgICAg ICAgc3RkOjpnZXQ8X0lkeD4oc3RkOjpmb3J3YXJkPF9WYXJpYW50PihfX3ZhcmlhbnQpKSk7Cisg ICAgfQorCisgIHRlbXBsYXRlIDx0eXBlbmFtZSBfVmlzaXRvciwgdHlwZW5hbWUgX1ZhcmlhbnQs IHVuc2lnbmVkIGxvbmcgaW50Li4uIF9JZHhzPgorICAgIGNvbnN0ZXhwciBib29sIF9fY2hlY2tf dmlzaXRvcl9yZXN1bHRzKHN0ZDo6aW5kZXhfc2VxdWVuY2U8X0lkeHMuLi4+KQorICAgIHsKKyAg ICAgIHJldHVybiBfX3NhbWVfdHlwZXM8ZGVjbHR5cGUoX19jaGVja192aXNpdG9yX3Jlc3VsdDxf SWR4cz4oCisJc3RkOjpkZWNsdmFsPF9WaXNpdG9yPigpLAorCXN0ZDo6ZGVjbHZhbDxfVmFyaWFu dD4oKSkpLi4uPjsKKyAgICB9CisKKwogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVmlzaXRvciwgdHlw ZW5hbWUuLi4gX1ZhcmlhbnRzPgogICAgIGNvbnN0ZXhwciBkZWNsdHlwZShhdXRvKQogICAgIHZp c2l0KF9WaXNpdG9yJiYgX192aXNpdG9yLCBfVmFyaWFudHMmJi4uLiBfX3ZhcmlhbnRzKQpAQCAt MTcwNCw4ICsxNzM5LDI4IEBAIG5hbWVzcGFjZSBfX3ZhcmlhbnQKIAogICAgICAgdXNpbmcgX1Rh ZyA9IF9fZGV0YWlsOjpfX3ZhcmlhbnQ6Ol9fZGVkdWNlX3Zpc2l0X3Jlc3VsdDxfUmVzdWx0X3R5 cGU+OwogCi0gICAgICByZXR1cm4gc3RkOjpfX2RvX3Zpc2l0PF9UYWc+KHN0ZDo6Zm9yd2FyZDxf VmlzaXRvcj4oX192aXNpdG9yKSwKLQkJCQkgICBzdGQ6OmZvcndhcmQ8X1ZhcmlhbnRzPihfX3Zh cmlhbnRzKS4uLik7CisgICAgICBpZiBjb25zdGV4cHIgKHNpemVvZi4uLihfVmFyaWFudHMpID09 IDEpCisgICAgICAgIHsKKwkgIGNvbnN0ZXhwciBib29sIF9fdmlzaXRfcmV0dHlwZXNfbWF0Y2gg PQorCSAgICBfX2NoZWNrX3Zpc2l0b3JfcmVzdWx0czxfVmlzaXRvciwgX1ZhcmlhbnRzLi4uPigK KwkgICAgICBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8CisJICAgICAgICBzdGQ6OnZhcmlhbnRf c2l6ZTxyZW1vdmVfcmVmZXJlbmNlX3Q8X1ZhcmlhbnRzPi4uLj46OnZhbHVlPigpKTsKKwkgIGlm IGNvbnN0ZXhwciAoIV9fdmlzaXRfcmV0dHlwZXNfbWF0Y2gpCisJICAgIHsKKwkgICAgICBzdGF0 aWNfYXNzZXJ0KF9fdmlzaXRfcmV0dHlwZXNfbWF0Y2gsCisJCQkgICJzdGQ6OnZpc2l0IHJlcXVp cmVzIHRoZSB2aXNpdG9yIHRvIGhhdmUgdGhlIHNhbWUgIgorCQkJICAicmV0dXJuIHR5cGUgZm9y IGFsbCBhbHRlcm5hdGl2ZXMgb2YgYSB2YXJpYW50Iik7CisJICAgICAgcmV0dXJuOworCSAgICB9 CisJICBlbHNlCisJICAgIHJldHVybiBzdGQ6Ol9fZG9fdmlzaXQ8X1RhZz4oCisJICAgICAgc3Rk Ojpmb3J3YXJkPF9WaXNpdG9yPihfX3Zpc2l0b3IpLAorCSAgICAgIHN0ZDo6Zm9yd2FyZDxfVmFy aWFudHM+KF9fdmFyaWFudHMpLi4uKTsKKwl9CisgICAgICBlbHNlCisJcmV0dXJuIHN0ZDo6X19k b192aXNpdDxfVGFnPigKKyAgICAgICAgICBzdGQ6OmZvcndhcmQ8X1Zpc2l0b3I+KF9fdmlzaXRv ciksCisJICBzdGQ6OmZvcndhcmQ8X1ZhcmlhbnRzPihfX3ZhcmlhbnRzKS4uLik7CiAgICAgfQog CiAjaWYgX19jcGx1c3BsdXMgPiAyMDE3MDNMCg== --000000000000d5d5cd05b0765f40--