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 [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 1F60E3857811 for ; Fri, 1 Apr 2022 11:33:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1F60E3857811 Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-424-BSqDL76bPPGaVwTH9iMTqA-1; Fri, 01 Apr 2022 07:33:54 -0400 X-MC-Unique: BSqDL76bPPGaVwTH9iMTqA-1 Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-2dc7bdd666fso23669107b3.7 for ; Fri, 01 Apr 2022 04:33:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GUy+NWGJwRxDst8LtOqaDD1RI5tS35H7KlNrBgvuXpM=; b=WQ8dIB08lm1MvdJH8Pq1Cjj/1Q+mgt+k+tOeT75vDmr1oefwjy0G9EUtnPiCxAfdXf UOBnAK9W+3EN/fu6dHBW/BYjOnlOn0oXk8Wydx/dc0Kap4WbYbK5btwzFloxLDo5wRfI D+v6RKKnHGClFm7JmOgT6GFOwYQ8XC9VsPA7KgZfC7GrG0lpGHe0jIRCc8SbUYHAK3Gz ZrMP2g8rl89lvhBdrJF8mpOIPv01fdlp+7jrH0iQ+AHXQ4Rx29UHciV4buOahDtZYuqj 1hEiLxndrh5d5LPN0Ip+RN7e9Wv267Pr3eCAD+DAvvDkyNeXMe6+tzns9/Ck6M8Fjgt7 T8Ww== X-Gm-Message-State: AOAM533GWAYPjU9pmj036NK4ugnF1k+drxDXOn6uQkkxrzef/WBjqR89 OavqZd27AIHiCAr8ja7QxwRVCDQgAYiPNU4GzuuFFEpeURMjRGbcsC5y+tbJDksOsON5lDwq+X/ l+rpeXY4COLHM6q7nRjYu0UUUOfQV4VMcSA== X-Received: by 2002:a25:206:0:b0:633:b96e:560c with SMTP id 6-20020a250206000000b00633b96e560cmr7729267ybc.415.1648812834146; Fri, 01 Apr 2022 04:33:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJywDaxY3OYe2G0vQLKG5cMiDePETJUtTIVDLsbWtqYuzWmj4lDmqz8gDfZcJkiAS1qW0MjZ5CjkLRyN4b4MOhM= X-Received: by 2002:a25:206:0:b0:633:b96e:560c with SMTP id 6-20020a250206000000b00633b96e560cmr7729256ybc.415.1648812833914; Fri, 01 Apr 2022 04:33:53 -0700 (PDT) MIME-Version: 1.0 References: <20220331153029.1898244-1-jwakely@redhat.com> <3572914.e9J7NaK4W3@minbar> <48cc3e77-8f70-a4a7-ad16-22ba11d883b4@grove.saclay.inria.fr> <147e97d-41ab-98d-7721-a6cf2e0ddeb@hippo.saclay.inria.fr> In-Reply-To: <147e97d-41ab-98d-7721-a6cf2e0ddeb@hippo.saclay.inria.fr> From: Jonathan Wakely Date: Fri, 1 Apr 2022 12:33:42 +0100 Message-ID: Subject: Re: [PATCH] libstdc++: Implement std::unreachable() for C++23 (P0627R6) To: Marc Glisse Cc: "libstdc++" , Matthias Kretz , gcc Patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="00000000000044816605db962780" X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE 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: Fri, 01 Apr 2022 11:34:06 -0000 --00000000000044816605db962780 Content-Type: text/plain; charset="UTF-8" On Thu, 31 Mar 2022 at 19:21, Marc Glisse wrote: > > On Thu, 31 Mar 2022, Jonathan Wakely wrote: > > > On Thu, 31 Mar 2022 at 17:03, Marc Glisse via Libstdc++ > > wrote: > >> > >> On Thu, 31 Mar 2022, Matthias Kretz via Gcc-patches wrote: > >> > >>> I like it. But I'd like it even more if we could have > >>> > >>> #elif defined _UBSAN > >>> __ubsan_invoke_ub("reached std::unreachable()"); > >>> > >>> But to my knowledge UBSAN has no hooks for the library like this (yet). > >> > >> -fsanitize=undefined already replaces __builtin_unreachable with its own > >> thing, so I was indeed going to ask if the assertion / trap provide a > >> better debugging experience compared to plain __builtin_unreachable, with > >> the possibility to get a stack trace (UBSAN_OPTIONS=print_stacktrace=1), > >> etc? Detecting if (the right subset of) ubsan is enabled sounds like a > >> good idea. > > > > Does UBsan define a macro that we can use to detect it? > > https://github.com/google/sanitizers/issues/765 seems to say no (it could > be outdated though), but they were asking for use cases to motivate adding > one. Apparently there is a macro for clang, although I don't think it is > fine-grained. > > Adding one to cppbuiltin.cc testing SANITIZE_UNREACHABLE looks easy, maybe > we can do just this one, we don't need to go overboard and define macros > for all possible suboptions of ubsan right now. Yes, we should only add what there's a use case for. > I don't think any of that prevents from pushing your patch as is for > gcc-12. Matthias didn't like my Princess Bride easter egg :-) Would the attached be better? --00000000000044816605db962780 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1gckx9h0 Y29tbWl0IGUyYjJjZjYzMTk0MDZiYzljYjkzNjE5NjJjZjdjMzFiMTg0OGViZTgKQXV0aG9yOiBK b25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4KRGF0ZTogICBGcmkgQXByIDEgMTI6 MjU6MDIgMjAyMgoKICAgIGxpYnN0ZGMrKzogSW1wbGVtZW50IHN0ZDo6dW5yZWFjaGFibGUoKSBm b3IgQysrMjMgKFAwNjI3UjYpCiAgICAKICAgIFRoaXMgZGVmaW5lcyBzdGQ6OnVucmVhY2hhYmxl IGFzIGFuIGFzc2VydGlvbiBmb3IgZGVidWcgbW9kZSwgYSB0cmFwCiAgICB3aGVuIF9HTElCQ1hY X0FTU0VSVElPTlMgaXMgZGVmaW5lZCwgYW5kIF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpCiAgICBv dGhlcndpc2UuCiAgICAKICAgIFRoZSByZWFzb24gZm9yIG9ubHkgdXNpbmcgX19idWlsdGluX3Ry YXAoKSBpbiB0aGUgc2Vjb25kIGNhc2UgaXMgdG8KICAgIGF2b2lkIHRoZSBvdmVyaGVhZCBvZiBz ZXR0aW5nIHVwIGEgY2FsbCB0byBfX2dsaWJjeHhfYXNzZXJ0X2ZhaWwgdGhhdAogICAgc2hvdWxk IG5ldmVyIGhhcHBlbi4KICAgIAogICAgVUJzYW4gY2FuIGRldGVjdCBpZiBfX2J1aWx0aW5fdW5y ZWFjaGFibGUoKSBpcyBleGVjdXRlZCwgc28gaWYgYSBmZWF0dXJlCiAgICB0ZXN0IG1hY3JvIGZv ciB0aGF0IHNhbml0aXplciBpcyBhZGRlZCwgd2UgY291bGQgY2hhbmdlIGp1c3QgdXNlCiAgICBf X2J1aWx0aW5fdW5yZWFjaGFibGUoKSB3aGVuIHRoZSBzYW5pdGl6ZXIgaXMgZW5hYmxlZC4KICAg IAogICAgV2hpbGUgdGhpbmtpbmcgYWJvdXQgd2hhdCB0aGUgZGVidWcgYXNzZXJ0aW9uIGZhaWx1 cmUgc2hvdWxkIHByaW50LCBJCiAgICBub3RpY2VkIHRoYXQgdGhlIF9fZ2xpYmN4eF9hc3NlcnRf ZmFpbCBmdW5jdGlvbiBkb2Vzbid0IGNoZWNrIGZvciBudWxsCiAgICBwb2ludGVycy4gVGhpcyBh ZGRzIGEgY2hlY2sgc28gd2UgZG9uJ3QgdHJ5IHRvIHByaW50IHRoZW0gaWYgbnVsbC4KICAgIAog ICAgbGlic3RkYysrLXYzL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIGluY2x1ZGUvc3Rk L3V0aWxpdHkgKHVucmVhY2hhYmxlKTogRGVmaW5lIGZvciBDKysyMy4KICAgICAgICAgICAgKiBp bmNsdWRlL3N0ZC92ZXJzaW9uIChfX2NwcF9saWJfdW5yZWFjaGFibGUpOiBEZWZpbmUuCiAgICAg ICAgICAgICogc3JjL2MrKzExL2RlYnVnLmNjIChfX2dsaWJjeHhfYXNzZXJ0X2ZhaWwpOiBDaGVj ayBmb3IgdmFsaWQKICAgICAgICAgICAgYXJndW1lbnRzLiBIYW5kbGUgb25seSB0aGUgZnVuY3Rp b24gYmVpbmcgZ2l2ZW4uCiAgICAgICAgICAgICogdGVzdHN1aXRlLzIwX3V0aWwvdW5yZWFjaGFi bGUvMS5jYzogTmV3IHRlc3QuCiAgICAgICAgICAgICogdGVzdHN1aXRlLzIwX3V0aWwvdW5yZWFj aGFibGUvdmVyc2lvbi5jYzogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvc3RkL3V0aWxpdHkgYi9saWJzdGRjKystdjMvaW5jbHVkZS9zdGQvdXRpbGl0eQppbmRl eCAwZDdmODk1NGM1YS4uYWQ1ZmFhNTBmNTcgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNs dWRlL3N0ZC91dGlsaXR5CisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC91dGlsaXR5CkBA IC0xODYsNiArMTg2LDMyIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAg Y29uc3RleHByIHVuZGVybHlpbmdfdHlwZV90PF9UcD4KICAgICB0b191bmRlcmx5aW5nKF9UcCBf X3ZhbHVlKSBub2V4Y2VwdAogICAgIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVuZGVybHlpbmdfdHlw ZV90PF9UcD4+KF9fdmFsdWUpOyB9CisKKyNkZWZpbmUgX19jcHBfbGliX3VucmVhY2hhYmxlIDIw MjIwMkwKKyAgLy8vIEluZm9ybXMgdGhlIGNvbXBpbGVyIHRoYXQgcHJvZ3JhbSBjb250cm9sIGZs b3cgbmV2ZXIgcmVhY2hlcyB0aGlzIHBvaW50LgorICAvKioKKyAgICogRXZhbHVhdGluZyBhIGNh bGwgdG8gdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIHVuZGVmaW5lZCBiZWhhdmlvdXIuCisgICAq IFRoaXMgY2FuIGJlIHVzZWQgYXMgYW4gYXNzZXJ0aW9uIGluZm9ybWluZyB0aGUgY29tcGlsZXIg dGhhdCBjZXJ0YWluCisgICAqIGNvbmRpdGlvbnMgYXJlIGltcG9zc2libGUsIGZvciB3aGVuIHRo ZSBjb21waWxlciBpcyB1bmFibGUgdG8gZGV0ZXJtaW5lCisgICAqIHRoYXQgYnkgaXRzZWxmLgor ICAgKgorICAgKiBGb3IgZXhhbXBsZSwgaXQgY2FuIGJlIHVzZWQgdG8gcHJldmVudCB3YXJuaW5n cyBhYm91dCByZWFjaGluZyB0aGUKKyAgICogZW5kIG9mIGEgbm9uLXZvaWQgZnVuY3Rpb24gd2l0 aG91dCByZXR1cm5pbmcuCisgICAqCisgICAqIEBzaW5jZSBDKysyMworICAgKi8KKyAgW1tub3Jl dHVybixfX2dudV9fOjpfX2Fsd2F5c19pbmxpbmVfX11dCisgIGlubGluZSB2b2lkCisgIHVucmVh Y2hhYmxlKCkKKyAgeworI2lmZGVmIF9HTElCQ1hYX0RFQlVHCisgICAgc3RkOjpfX2dsaWJjeHhf YXNzZXJ0X2ZhaWwobnVsbHB0ciwgMCwgInN0ZDo6dW5yZWFjaGFibGUoKSIsIG51bGxwdHIpOwor I2VsaWYgZGVmaW5lZCBfR0xJQkNYWF9BU1NFUlRJT05TCisgICAgX19idWlsdGluX3RyYXAoKTsK KyNlbHNlCisgICAgX19idWlsdGluX3VucmVhY2hhYmxlKCk7CisjZW5kaWYKKyAgfQogI2VuZGlm IC8vIEMrKzIzCiAjZW5kaWYgLy8gQysrMjAKICNlbmRpZiAvLyBDKysxNwpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL3ZlcnNpb24gYi9saWJzdGRjKystdjMvaW5jbHVkZS9z dGQvdmVyc2lvbgppbmRleCA0NGI4YTlmODhiNS4uNTFmMjExMGI2OGUgMTAwNjQ0Ci0tLSBhL2xp YnN0ZGMrKy12My9pbmNsdWRlL3N0ZC92ZXJzaW9uCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRl L3N0ZC92ZXJzaW9uCkBAIC0zMjYsNiArMzI2LDcgQEAKICMgZGVmaW5lIF9fY3BwX2xpYl9zdHJp bmdfcmVzaXplX2FuZF9vdmVyd3JpdGUgMjAyMTEwTAogI2VuZGlmCiAjZGVmaW5lIF9fY3BwX2xp Yl90b191bmRlcmx5aW5nIDIwMjEwMkwKKyNkZWZpbmUgX19jcHBfbGliX3VucmVhY2hhYmxlIDIw MjIwMkwKICNlbmRpZgogI2VuZGlmIC8vIEMrKzJiCiAjZW5kaWYgLy8gQysrMjAKZGlmZiAtLWdp dCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvZGVidWcuY2MgYi9saWJzdGRjKystdjMvc3JjL2Mr KzExL2RlYnVnLmNjCmluZGV4IDk4ZmUyZGNjMTUzLi40NzA2ZGVmZWRmMSAxMDA2NDQKLS0tIGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS9kZWJ1Zy5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2Mr KzExL2RlYnVnLmNjCkBAIC01Miw4ICs1MiwxMSBAQCBuYW1lc3BhY2Ugc3RkCiAgIF9fZ2xpYmN4 eF9hc3NlcnRfZmFpbChjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwKIAkJCWNvbnN0IGNoYXIq IGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBjb25kaXRpb24pIG5vZXhjZXB0CiAgIHsKLSAgICBmcHJp bnRmKHN0ZGVyciwgIiVzOiVkOiAlczogQXNzZXJ0aW9uICclcycgZmFpbGVkLlxuIiwKLQkJICAg ICAgZmlsZSwgbGluZSwgZnVuY3Rpb24sIGNvbmRpdGlvbik7CisgICAgaWYgKGZpbGUgJiYgZnVu Y3Rpb24gJiYgY29uZGl0aW9uKQorICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogJXM6IEFz c2VydGlvbiAnJXMnIGZhaWxlZC5cbiIsCisJICAgICAgZmlsZSwgbGluZSwgZnVuY3Rpb24sIGNv bmRpdGlvbik7CisgICAgZWxzZSBpZiAoZnVuY3Rpb24pCisgICAgICBmcHJpbnRmKHN0ZGVyciwg IiVzOiBVbmRlZmluZWQgYmVoYXZpb3IgZGV0ZWN0ZWQuXG4iLCBmdW5jdGlvbik7CiAgICAgYWJv cnQoKTsKICAgfQogfQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGls L3VucmVhY2hhYmxlLzEuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwvdW5yZWFj aGFibGUvMS5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGM0NjNk NTJhNDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwv dW5yZWFjaGFibGUvMS5jYwpAQCAtMCwwICsxLDE3IEBACisvLyB7IGRnLW9wdGlvbnMgIi1zdGQ9 Z251KysyMyIgfQorLy8geyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IGMrKzIzIH0gfQorCisjaW5j bHVkZSA8dXRpbGl0eT4KKworI2lmbmRlZiBfX2NwcF9saWJfdW5yZWFjaGFibGUKKyMgZXJyb3Ig IkZlYXR1cmUtdGVzdCBtYWNybyBmb3IgdW5yZWFjaGFibGUgbWlzc2luZyBpbiA8dXRpbGl0eT4i CisjZWxpZiBfX2NwcF9saWJfdW5yZWFjaGFibGUgIT0gMjAyMjAyTAorIyBlcnJvciAiRmVhdHVy ZS10ZXN0IG1hY3JvIGZvciB1bnJlYWNoYWJsZSBoYXMgd3JvbmcgdmFsdWUgaW4gPHV0aWxpdHk+ IgorI2VuZGlmCisKK2Jvb2wgdGVzdDAxKGludCBpKQoreworICBpZiAoaSA9PSA0KQorICAgIHJl dHVybiB0cnVlOworICBzdGQ6OnVucmVhY2hhYmxlKCk7Cit9IC8vIHsgZGctYm9ndXMgImNvbnRy b2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24iIH0KZGlmZiAtLWdpdCBhL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC91bnJlYWNoYWJsZS92ZXJzaW9uLmNjIGIvbGlic3Rk YysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL3VucmVhY2hhYmxlL3ZlcnNpb24uY2MKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3Nzk1OTAwYzMwCi0tLSAvZGV2L251bGwK KysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL3VucmVhY2hhYmxlL3ZlcnNpb24u Y2MKQEAgLTAsMCArMSwxMCBAQAorLy8geyBkZy1vcHRpb25zICItc3RkPWdudSsrMjMiIH0KKy8v IHsgZGctZG8gcHJlcHJvY2VzcyB7IHRhcmdldCBjKysyMyB9IH0KKworI2luY2x1ZGUgPHZlcnNp b24+CisKKyNpZm5kZWYgX19jcHBfbGliX3VucmVhY2hhYmxlCisjIGVycm9yICJGZWF0dXJlLXRl c3QgbWFjcm8gZm9yIHVucmVhY2hhYmxlIG1pc3NpbmcgaW4gPHZlcnNpb24+IgorI2VsaWYgX19j cHBfbGliX3VucmVhY2hhYmxlICE9IDIwMjIwMkwKKyMgZXJyb3IgIkZlYXR1cmUtdGVzdCBtYWNy byBmb3IgdW5yZWFjaGFibGUgaGFzIHdyb25nIHZhbHVlIGluIDx2ZXJzaW9uPiIKKyNlbmRpZgo= --00000000000044816605db962780--