[{"id":3674813,"web_url":"http://patchwork.ozlabs.org/comment/3674813/","msgid":"<lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","list_archive_url":null,"date":"2026-04-08T14:47:57","subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","submitter":{"id":14312,"url":"http://patchwork.ozlabs.org/api/people/14312/","name":"Florian Weimer","email":"fweimer@redhat.com"},"content":"* Tomasz Kamiński:\n\n> This implements P3886R0: Wording for AT1-057, by defining the\n> __cpp_lib_replaceable_contract_violation_handler. The macro is defined\n> only if contracts are supported (i.e. under same conditions as\n> __cpp_lib_contracts).\n>\n> GCC supports providing custom violation handler by providing an separate\n> defintion of handle_contract_violation. This is supported on the targets\n> that uses ELF format, so the macro is defined for with non-zero value\n> for them.\n>\n> libstdc++-v3/ChangeLog:\n>\n> \t* include/bits/version.def (replaceable_contract_violation_handler)\n> \t[(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]:\n> \tDefine to 202603 for ELF targets, and 0 otherwise.\n> \t* include/bits/version.h: Regenerate.\n> \t* include/std/contracts: Define\n> \t__cpp_lib_replaceable_contract_violation_handler.\n> ---\n> From the discussion with Jason, this for sure is supported for ELF\n> targets. We were not sure regarding Darwin, but we could always expand\n> the set of targets where macro is defined.\n\nWouldn't you have to declare the symbol as weak in the header, so that\nmultiple definitions won't conflict?\n\nWith ELF, there can only be one strong definition of a symbol in the\nlink, and whether this works as expected depends on the contents of the\nobject file that contains the symbol definition.\n\nEven if the symbol is defined as weak in the header, multiple TUs\nreacting to __cpp_lib_replaceable_contract_violation_handler need to\ncoordinate.  A simple macro does not really capture that.  A library\nshould not assume that because the macro is defined, replacing the\nhandler has the intended effect, or is indeed successful.\n\nThanks,\nFlorian","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=d73jxhaI;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=d73jxhaI","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.133.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frQtC3lfPz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 00:48:34 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id EF7AB4BA2E04\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  8 Apr 2026 14:48:31 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id A340C4BA2E06\n for <gcc-patches@gcc.gnu.org>; Wed,  8 Apr 2026 14:48:05 +0000 (GMT)","from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-170-hnhU9x6sNIyh0v0M5MCzdQ-1; Wed,\n 08 Apr 2026 10:48:02 -0400","from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 356B6195609F; Wed,  8 Apr 2026 14:48:01 +0000 (UTC)","from fweimer-oldenburg.csb.redhat.com (unknown [10.44.33.117])\n by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with\n ESMTPS\n id DB67F1955D6B; Wed,  8 Apr 2026 14:47:59 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org EF7AB4BA2E04","OpenDKIM Filter v2.11.0 sourceware.org A340C4BA2E06"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org A340C4BA2E06","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org A340C4BA2E06","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775659685; cv=none;\n b=ZuOXiug4aV69DZCBccYJVhtV6BP5naFHX7ZOruwzrKlCe1Lx1pPUERlbjfH1x1xmTZBsB7ca1cQeSPcXJU5Rov9r4o46zu+jzDgHn4rjdxgRqniJoN5GxT533xQqscaO0V2B+uFD0x7N18PfI/G+8+emOC8HhAemS4qgxtChO2E=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775659685; c=relaxed/simple;\n bh=fwo0E44MX+TawE8Q/Uky3sFWk8hnorJ3f980RZoCOII=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=YIwQ7kuD5MQyZ9oIejTHqOro4FN54o+/FJV25o4DSZ9Tqidm3q3q3vxh69Q1DOFyakhmYN3Rb003YT/qXD2uyRiVYJc2rxrcICF61G2SwB+4GB2RpzZ8+9Gu5rjpOEsbwKfItGBmH75BMH3h930DfFbQVwB/qckTRLrAYvl9VS4=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775659685;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=KrEr6q0xq7cLmd8m5sP3fILgtYlTCkUePgdj0ee4UEc=;\n b=d73jxhaIKx02vs7K69Yrm19VyEw67jQpaDp23ClDkp1U5NL0VzM5OsES0iGwS5M+Zogk6z\n g4l74/eLg4yzuxnodq9y6v8D8/vAWHP4JCLTTJ0uQFZYHGf2/Qp7VQi9w2L6DZ3a0O3S8E\n ObY6O0nZN594zjafNjtOcF+FEvsaaug=","X-MC-Unique":"hnhU9x6sNIyh0v0M5MCzdQ-1","X-Mimecast-MFC-AGG-ID":"hnhU9x6sNIyh0v0M5MCzdQ_1775659681","From":"Florian Weimer <fweimer@redhat.com>","To":"Tomasz =?utf-8?b?S2FtacWEc2tp?= <tkaminsk@redhat.com>","Cc":"libstdc++@gcc.gnu.org,  gcc-patches@gcc.gnu.org","Subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","In-Reply-To":"<20260408135939.266955-1-tkaminsk@redhat.com> (\"Tomasz\n\t=?utf-8?b?S2FtacWEc2tpIidz?= message of \"Wed, 8 Apr 2026 15:59:08 +0200\")","References":"<20260408135939.266955-1-tkaminsk@redhat.com>","Date":"Wed, 08 Apr 2026 16:47:57 +0200","Message-ID":"<lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Scanned-By":"MIMEDefang 3.0 on 10.30.177.12","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"0FVQRFw0L98KmuMA6jhMoKOT2_lYK4pR08wzBEk8CbQ_1775659681","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3674824,"web_url":"http://patchwork.ozlabs.org/comment/3674824/","msgid":"<CAH6eHdQM62C04605anve+j7pEsmxKXu36EMXdUSkNm5n4mWJxw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-08T15:01:55","subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","submitter":{"id":4329,"url":"http://patchwork.ozlabs.org/api/people/4329/","name":"Jonathan Wakely","email":"jwakely.gcc@gmail.com"},"content":"On Wed, 8 Apr 2026, 15:48 Florian Weimer, <fweimer@redhat.com> wrote:\n\n> * Tomasz Kamiński:\n>\n> > This implements P3886R0: Wording for AT1-057, by defining the\n> > __cpp_lib_replaceable_contract_violation_handler. The macro is defined\n> > only if contracts are supported (i.e. under same conditions as\n> > __cpp_lib_contracts).\n> >\n> > GCC supports providing custom violation handler by providing an separate\n> > defintion of handle_contract_violation. This is supported on the targets\n> > that uses ELF format, so the macro is defined for with non-zero value\n> > for them.\n> >\n> > libstdc++-v3/ChangeLog:\n> >\n> >       * include/bits/version.def (replaceable_contract_violation_handler)\n> >       [(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]:\n> >       Define to 202603 for ELF targets, and 0 otherwise.\n> >       * include/bits/version.h: Regenerate.\n> >       * include/std/contracts: Define\n> >       __cpp_lib_replaceable_contract_violation_handler.\n> > ---\n> > From the discussion with Jason, this for sure is supported for ELF\n> > targets. We were not sure regarding Darwin, but we could always expand\n> > the set of targets where macro is defined.\n>\n> Wouldn't you have to declare the symbol as weak in the header, so that\n> multiple definitions won't conflict?\n>\n> With ELF, there can only be one strong definition of a symbol in the\n> link, and whether this works as expected depends on the contents of the\n> object file that contains the symbol definition.\n>\n> Even if the symbol is defined as weak in the header, multiple TUs\n> reacting to __cpp_lib_replaceable_contract_violation_handler need to\n> coordinate.  A simple macro does not really capture that.\n\n\nThe intended purpose of the macro is not \"replacing the handler works as\nexpected\", it's \"attempting to replace the handler doors not have undefined\nbehaviour\". It's not intended to day there's only one definition.\n\nIt's entirely expected that users of contracts need to coordinate: the\nknobs for controlling behaviour are all currently global.\n\n\n  A library\n> should not assume that because the macro is defined, replacing the\n> handler has the intended effect, or is indeed successful.\n>\n\nIMHO libraries should not try to replace the handler at all. That should be\na decision made by the application, not sub-components.","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=BNmjwJn3;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=BNmjwJn3","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","sourceware.org; spf=pass smtp.mailfrom=gmail.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=209.85.208.177"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frRBT1RYDz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 01:02:39 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D28DA4BA2E11\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  8 Apr 2026 15:02:37 +0000 (GMT)","from mail-lj1-f177.google.com (mail-lj1-f177.google.com\n [209.85.208.177])\n by sourceware.org (Postfix) with ESMTPS id ABFA14BA540B\n for <gcc-patches@gcc.gnu.org>; Wed,  8 Apr 2026 15:02:09 +0000 (GMT)","by mail-lj1-f177.google.com with SMTP id\n 38308e7fff4ca-3870778358aso55491061fa.1\n for <gcc-patches@gcc.gnu.org>; Wed, 08 Apr 2026 08:02:09 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org D28DA4BA2E11","OpenDKIM Filter v2.11.0 sourceware.org ABFA14BA540B"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org ABFA14BA540B","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org ABFA14BA540B","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775660530; cv=pass;\n b=EoRQ3PRVw/MB7SvkbmGbP2wQgujVLD5IxyC3QCTiTa8ap84tHZZofkPhpLJubX29nD1SxzWpHzf+HepxXpXY/l24R3vmOuC6vLx5AFmcHBx+usaUkxMmFmp+9RaHzjL7YWed6Qs0MLsdPHasYQutrzSPmkBNPO7s9ZlfGRUI6kA=","i=1; a=rsa-sha256; t=1775660528; cv=none;\n d=google.com; s=arc-20240605;\n b=XRfB84x4JOjrsVl/ViJ/JatAGhqVkUosPpuqVWyBd607O2DK35azz2xhI3eUwBTF2c\n z1D5P2MwIREam0fhsTEsPXMKhj1Aqi15Cuv/W6ADmKqZSwITgE6a0SMzidSqybIPwadY\n 4RK95LDG3l7BYNlEpMgSPsJiBaHOQG8jyU7RTDSUNGxvdHrViFi34Q/S3cIROWDXrnBX\n +hHSkRKXXFZjCwojvtSSKf1PwIWJIKmgR2KepOLBGIozzvQgFEL0NGva/hy2GW+4PO/2\n vGN2usSTScWW1tN7uMiLdysrR7hp1nbjhAV63xQHiF4DUy7qzicw4Vukt0L9Fvsdar4a\n HJPQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775660530; c=relaxed/simple;\n bh=qOGUmkqKYxp298V6VynswJisynC6TeT3G3qGN38eA9M=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=gEtjKBRhfv5hE0ZIe9UZcCb/IdAEl+CUy5x4FYWH9xjGjEpUqq2dOdgw0CnxuMAu5T/vfznDDGfWG0WVwv9LBh6qdT9lMUgQMHyKs7lFX+6HjeoAJZyBZvIZ6K2SeBOxazdXeiHLxjSZGq52u3kNXa0aAEjj6bms2XDgZ4xRj2E=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=/2mA7jdrTl3m6bjaFCSy70YL8WIxgtr/+dO5vStBH18=;\n fh=v7WJLP6v9cDvQkNAade4YV8+uvJ15FiKosKDaByEwGo=;\n b=BRO0jWwHP2oOQ2B0KwvLGwLknfF2YQ44+Q8cTfO0ifK0MJDHaaqR481M0YBpM5NGYv\n ja6u9AIEauPjJugQxY7oT8SJuxTS4vReF2hzBtGeSkZa3dn3FTjZ+fks7tFGN7f3S+6E\n 08HMw3G3uadcxbmnoefuycDOZkfL95Xqe3DoyWN6zm1oGQa9wm8AzWISmuo5xa8iddoX\n f/SzeafSRP42KTQaBFTHVz/kMDRPAhMMqIzxcGQpHyK1gNB2kazUoh41up7lf99BsZ+v\n ZdIcD1d5iJB6vKtfl/Lbvh93TIsMS18M2oLuR28LJThaC+Xzz9l1wJw1hp5p1wzt2Ebp\n sUoA==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775660528; x=1776265328; darn=gcc.gnu.org;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=/2mA7jdrTl3m6bjaFCSy70YL8WIxgtr/+dO5vStBH18=;\n b=BNmjwJn3+tPwWapQdI3IvdvJ+BZ2lcsIOBXO4gkq7hN3Up51RzcHgJFCCiAVwnFGly\n ZTANoZSnVqrpLlj15itBuz/rRNu3stjeXu7/6lb37Q8iRfIq7EfpEKCE6lr+M79R61h7\n /ROuXMfnJa9OGFpOAd/KFRX4wmuXP4ZU7bthUD3RSltwnotp4gRJDON0agKefwrgSov9\n zM5stNI7rS9h+7bHp2fMOsRpooW5ThlQHdFVwKiqdXOu/H1TBVuloV+4kO3a53mr+Yjv\n t772mwHkHOcbgB6G4DnasIFZAf05esg7MGWKTQD3XjjDdm2WSj52cPeRFjM8vwSy8iDp\n 3g6Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775660528; x=1776265328;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=/2mA7jdrTl3m6bjaFCSy70YL8WIxgtr/+dO5vStBH18=;\n b=qXCNrI25maIErrmQEokIUzvyWWCjbTqNg+ar95ghK8iHK6RODAW0E/HKfhpygzFhtq\n KDUX/Tfh9i60/RC8pfZMoqUteKWroKSuiGWJAPIoJNcr6JyemivclktFFTIGxZyfIjYs\n cTz8Y4GPstEuXFEBrmaUEkrrOR628lKYBDBwDeEtSesB1hZ57ZQ7wlLeNg2WJjTS1Ff9\n wwunecLw2fHXVnCoWwihofQrc9n9iNx7ybHfZ86Us6roWNSosdTnIn+7idqJM9KCHoLV\n hOcKOEVkr3irTVFVr/UB+pRmbxZz8wCAGan60Y8AEb86TzpM6LwP49HGkxLhq0afX7kO\n zXHA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUU5RBN4CoOvcHZokyxHYTtEj2QJ8gABDys5jeruJtC+BmL7InZeRoAXowrxKAYSaY4uXItuTJmjA9isw==@gcc.gnu.org","X-Gm-Message-State":"AOJu0YzLl3gnz4ZryABG1CrGnJj5VCsqyhChx4IBriKSTO7f9V0XAZ8S\n JnMSd+p5uD3247y7gnF+EI8BfTBPiyLjF8RX3cOjs3p4k7g3q9mkfSh7BpJtz2DwiGK/4mOfVC3\n olFqXM3m3M+e8tzlS9QNHzv2wjXOYxTI=","X-Gm-Gg":"AeBDiesAVqSFQJeWHKKFpETFuL/H1mply5ebpRKWO4zttJyy367ndOJKScVADcg9jZA\n E2RxL6seH87ZseyDYwAhsUlh1deij28RMg4IGPb7+yTHNF6e5MSJvvdTOGDMJ3+Hzq1Lsl2XoeT\n znKCuHPX0PqoMQtZqPLAaQyoJuzrha4aXBSqsHPMjhFql767wRH35/Pj/ftMWDXy6SZRommjD7D\n ZHSYo/X8UOrV4EkBOtZbmD1d4rywUq56eL2rWjGCKomHofgj959NcHFy9IHWfSH3oCpIx1CiOFi\n z41TMMAUB1IZ4Wis0tLssDyODe1pTWR0jKvrFvASuLejPna8IEeaUTuU/QzTy/+rKyPROW06pmG\n 7Ewar6FbXim0Q7Edz8uJJNSwtucL5BumPEi7bng==","X-Received":"by 2002:a05:651c:f08:b0:38a:56d0:9d24 with SMTP id\n 38308e7fff4ca-38d91bf7602mr68939461fa.18.1775660527961; Wed, 08 Apr 2026\n 08:02:07 -0700 (PDT)","MIME-Version":"1.0","References":"<20260408135939.266955-1-tkaminsk@redhat.com>\n <lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","In-Reply-To":"<lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","From":"Jonathan Wakely <jwakely.gcc@gmail.com>","Date":"Wed, 8 Apr 2026 16:01:55 +0100","X-Gm-Features":"AQROBzD4e2DZxUQ6wK2OKakVB1VQ3xQF4Y82egYX_CaTOVYWDx26ncJQPsYLYP8","Message-ID":"\n <CAH6eHdQM62C04605anve+j7pEsmxKXu36EMXdUSkNm5n4mWJxw@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","To":"Florian Weimer <fweimer@redhat.com>","Cc":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>,\n  \"libstdc++\" <libstdc++@gcc.gnu.org>, gcc-patches <gcc-patches@gcc.gnu.org>","Content-Type":"multipart/alternative; boundary=\"00000000000002c9eb064ef42fe5\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3674826,"web_url":"http://patchwork.ozlabs.org/comment/3674826/","msgid":"<CAH6eHdRZ0YVmQqYE70TkKon4EoimNxAD1Ns0y5KFuEG=y1wPqg@mail.gmail.com>","list_archive_url":null,"date":"2026-04-08T15:04:08","subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","submitter":{"id":4329,"url":"http://patchwork.ozlabs.org/api/people/4329/","name":"Jonathan Wakely","email":"jwakely.gcc@gmail.com"},"content":"On Wed, 8 Apr 2026, 15:48 Florian Weimer, <fweimer@redhat.com> wrote:\n\n> * Tomasz Kamiński:\n>\n> > This implements P3886R0: Wording for AT1-057, by defining the\n> > __cpp_lib_replaceable_contract_violation_handler. The macro is defined\n> > only if contracts are supported (i.e. under same conditions as\n> > __cpp_lib_contracts).\n> >\n> > GCC supports providing custom violation handler by providing an separate\n> > defintion of handle_contract_violation. This is supported on the targets\n> > that uses ELF format, so the macro is defined for with non-zero value\n> > for them.\n> >\n> > libstdc++-v3/ChangeLog:\n> >\n> >       * include/bits/version.def (replaceable_contract_violation_handler)\n> >       [(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]:\n> >       Define to 202603 for ELF targets, and 0 otherwise.\n> >       * include/bits/version.h: Regenerate.\n> >       * include/std/contracts: Define\n> >       __cpp_lib_replaceable_contract_violation_handler.\n> > ---\n> > From the discussion with Jason, this for sure is supported for ELF\n> > targets. We were not sure regarding Darwin, but we could always expand\n> > the set of targets where macro is defined.\n>\n> Wouldn't you have to declare the symbol as weak in the header, so that\n> multiple definitions won't conflict?\n>\n\nThere is no declaration in the header.\n\n\n\n> With ELF, there can only be one strong definition of a symbol in the\n> link, and whether this works as expected depends on the contents of the\n> object file that contains the symbol definition.\n>\n> Even if the symbol is defined as weak in the header, multiple TUs\n> reacting to __cpp_lib_replaceable_contract_violation_handler need to\n> coordinate.  A simple macro does not really capture that.  A library\n> should not assume that because the macro is defined, replacing the\n> handler has the intended effect, or is indeed successful.\n>\n> Thanks,\n> Florian\n>\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=G9erpjir;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=G9erpjir","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","sourceware.org; spf=pass smtp.mailfrom=gmail.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=209.85.167.52"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frRF71xykz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 01:04:59 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 37D7F4BA2E1E\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  8 Apr 2026 15:04:57 +0000 (GMT)","from mail-lf1-f52.google.com (mail-lf1-f52.google.com\n [209.85.167.52])\n by sourceware.org (Postfix) with ESMTPS id B29734BA5439\n for <gcc-patches@gcc.gnu.org>; Wed,  8 Apr 2026 15:04:22 +0000 (GMT)","by mail-lf1-f52.google.com with SMTP id\n 2adb3069b0e04-5a2b542cbaaso6926097e87.0\n for <gcc-patches@gcc.gnu.org>; Wed, 08 Apr 2026 08:04:22 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 37D7F4BA2E1E","OpenDKIM Filter v2.11.0 sourceware.org B29734BA5439"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org B29734BA5439","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org B29734BA5439","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775660663; cv=pass;\n b=bxbmwvswhaKqC3Z+Kk9a5po8SWTRx8z+92GLrppnkoC8tMAx9285hwBvgiRHbvxz6ujvWjhIKinEam2E2DGDAijUZ0AL0me+61GDuYCo3I47iK3xIEf30zXo4BqPoUrof7Z5DcFl7ioX9DuExv4mlktZ2sXUfw5ogzHnXLCG5U8=","i=1; a=rsa-sha256; t=1775660661; cv=none;\n d=google.com; s=arc-20240605;\n b=jLo369Y1hrDJy634FSgTEOdsa6tH/OCU4Xv77ZQyLw2CYJbq1l2q9CMlgCNU1gFS7R\n SADyiyBW36q7CyYH/FFlJIgGvV1IdsujPS8FJtK84W4ychXRynRniwcWX01Yn1FOtpfl\n /odpuGtosMovs67f1kRMBkWMq4Gn4FL3HadOuicx5iPsCeGG654y8cRO/6zcPPr1pMG8\n egHgCxxZ1j6aCiVKb9ytI80sRBEIcMdLP+jXTuqw1rqaPwwFk9pMIZRSImp5B1STVGLc\n 182041eEoBX17E2lYrmnLCRG95Ruw7FqBdbd+DLG3U8Fgl5a/eMvaHB9VZYiPo4laKAk\n q2tA=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775660663; c=relaxed/simple;\n bh=EeIgjLnh9slZoC0hE6xlvXiRNsroE58eAiuONlpKSTg=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=XpVLwzkniBCRecKDzk8A0DgoRtsSs1Gs/CLgCpTTqpefUyIwVmTk1Gab+jH1UpFBpdxBzIVmk6GTyDCAzS2DwGiETVBbDoOT/wlwSMcAWjD4IVeN94KIAz27n3QTVG9fFMndmJnvPukWP7NCCf6muECUvwPkz+qqxlhR1GhFWRo=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=y6w1/0ZwU+3LGvHjVxyTzmguX0yjYLxoEl4nMzPLucY=;\n fh=/MA9onwmMrDaGycu1LCVGMIRdjzzeiiZ0gp8qi/ZuNU=;\n b=kfBnv1K+Io4mQqNJetUA+5AbO/pdTPmfTWZrYGIrz17JpOYpWo/kaFqZOeFcZm4RKj\n TeWtQYEWgmKl7PCBut7vScYOEV9IPDayaJifQVspNr+22+ZqrxVGnGl3rUXIiCXFgULZ\n yMRR/kJ8b8PLQA0s1jQDXZs7q0MPxDN1MiCCItjrf//Ef0fxdkpkHTbWLXXWuA7Ye3WL\n u7PeLIXHtOsVPlKMunrUAtoFImBYuXVMoL0kQti81ahk78DMb+u6fTVgRK2YwYP4bXAM\n HKnK+Iyja5txJNTiTcomTRCfX5kVa/wwY2btNxKETKc7sOstP1w/S3OFEwtO39MwO3W4\n LCBw==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775660661; x=1776265461; darn=gcc.gnu.org;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=y6w1/0ZwU+3LGvHjVxyTzmguX0yjYLxoEl4nMzPLucY=;\n b=G9erpjir1BKLl+DlGJ2AVy1CFuN11lphQPrQUUsj9qSbxY3TgV7XN+Xfl1wZb8R/qo\n U4finKAXxgXdvT/XYeRvK00k0A9Xwc/dPINqpaES68R0hujqGlcp/0EF2pZUSjTChFAE\n Wq7/HiiOihQrIo/bFpvie5DF0j3GRVASLnrpOAt/sGTp0nqi5CH3PJ1nLES2MPd9na5V\n /pBmFGiX0TLDRJ4OkqgWQVmqkHrEa8TvSe2RBara910zx5kvHxUxLP7cay2wcYFo3jkc\n h0qioOZJxakIozWAdwXg62be/ECglEtwi8icQ6Bn75x6G9FOxpL3m1p7SeklSsEGbZgl\n 8qXA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775660661; x=1776265461;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=y6w1/0ZwU+3LGvHjVxyTzmguX0yjYLxoEl4nMzPLucY=;\n b=irgih3+YtoQRVxZIA27167senNc6MiysyabeG82PFWrzA6BFgBswJZvf/fcvLDvjE+\n +lxbzQAPYTSNSP58r5QB4yP6fahC1Hto7Klag5TCx8CIJwKsPek+shBIaWeWqaA1bY7K\n bpT3+F5h3IMa+DFy+mwIWdSBwGaS3sCESowANskOwrrEXNBijZVAP6SmIqnlwwWodJMq\n BjlMfHWHwVKmRgPEm4+UX1N0aj7yBs9QbUxsJuCbGFSCx/B8Q6hG5+ZYyamFXHYVBiNU\n LdwcmpLVz2cQIUiq9IscC1YeJLN101uN+4IUx9B+kRBL4mKCso2nX9EAWaadexnkkSYD\n FwCA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCVdyzk+GMvUA45L7LG0bXwgslPpRvjWkJ9hA5y9jTUSaXOYz37OkC6sEC0FjTa1E8n1jVy0AHOIGaNU0w==@gcc.gnu.org","X-Gm-Message-State":"AOJu0Yyxb5/VWHRtQruPdz0Kh9olDAqXBrOXVTs/cGIrYVGYb1JrtpNg\n zASXVyF7VERGKMNHOwcOwYGTkMDdbPWTyyN4Guwwhp1p+k9I2V2QtmX08AzNAZkDe/c+Me2Cte0\n S0NNrzj7jKYMstZOWKzH1ouoCpFfstIs=","X-Gm-Gg":"AeBDiesdeDcKFuNWNs7viDV87LbTpYwhZL0niHr/ssHgzIqbkJgsUpu4CaEpYsGh9OV\n vLy940UiqjpaQGCj5neEeL7ZGfwrrUJZzJxlPCWbC1CdZCDq9Lw+jtISgiLoq0QLxnaDs2jPqQJ\n QmYUfOkdUw0cAFWCL1SVjAZSuUFCh5k94hb/CtrpGOAjspL0AyFUrfA91GqHRrLIvWc1XEuP8xY\n l8POwbQq3/6KZQB6qgtLVr06s6ApIZnYCkzO+A5cWo3dB7JMpXAel5jttn8rdLpkrHpLSdZwPYv\n 3mYYU5b+xWb/gEfHcp89hepVzszY04J6i1FpAbEDVxBCl10WCL9rKAh3otE9viO8B3/FbEcFJh+\n Ff/T/OJvVEJ1ySirzwAfPZYuOcWY=","X-Received":"by 2002:a05:6512:3da2:b0:5a2:961a:f7c6 with SMTP id\n 2adb3069b0e04-5a33758bb66mr6539692e87.39.1775660660816; Wed, 08 Apr 2026\n 08:04:20 -0700 (PDT)","MIME-Version":"1.0","References":"<20260408135939.266955-1-tkaminsk@redhat.com>\n <lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","In-Reply-To":"<lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","From":"Jonathan Wakely <jwakely.gcc@gmail.com>","Date":"Wed, 8 Apr 2026 16:04:08 +0100","X-Gm-Features":"AQROBzCqfh7u_aV_D9DbcF_ur7PjwJY0LGsbl-SpVBli_hV1SRkT6CQOsu69XWM","Message-ID":"\n <CAH6eHdRZ0YVmQqYE70TkKon4EoimNxAD1Ns0y5KFuEG=y1wPqg@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","To":"Florian Weimer <fweimer@redhat.com>","Cc":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>,\n  \"libstdc++\" <libstdc++@gcc.gnu.org>, gcc-patches <gcc-patches@gcc.gnu.org>","Content-Type":"multipart/alternative; boundary=\"000000000000ee00d7064ef4362d\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3674828,"web_url":"http://patchwork.ozlabs.org/comment/3674828/","msgid":"<CAKvuMXA9r+GvBQAa_+WBZ=Osptz9tj6hGnPhuH6rHjpfjgnHAQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-08T15:04:44","subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","submitter":{"id":90409,"url":"http://patchwork.ozlabs.org/api/people/90409/","name":"Tomasz Kamiński","email":"tkaminsk@redhat.com"},"content":"On Wed, Apr 8, 2026 at 4:48 PM Florian Weimer <fweimer@redhat.com> wrote:\n\n> * Tomasz Kamiński:\n>\n> > This implements P3886R0: Wording for AT1-057, by defining the\n> > __cpp_lib_replaceable_contract_violation_handler. The macro is defined\n> > only if contracts are supported (i.e. under same conditions as\n> > __cpp_lib_contracts).\n> >\n> > GCC supports providing custom violation handler by providing an separate\n> > defintion of handle_contract_violation. This is supported on the targets\n> > that uses ELF format, so the macro is defined for with non-zero value\n> > for them.\n> >\n> > libstdc++-v3/ChangeLog:\n> >\n> >       * include/bits/version.def (replaceable_contract_violation_handler)\n> >       [(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]:\n> >       Define to 202603 for ELF targets, and 0 otherwise.\n> >       * include/bits/version.h: Regenerate.\n> >       * include/std/contracts: Define\n> >       __cpp_lib_replaceable_contract_violation_handler.\n> > ---\n> > From the discussion with Jason, this for sure is supported for ELF\n> > targets. We were not sure regarding Darwin, but we could always expand\n> > the set of targets where macro is defined.\n>\n> Wouldn't you have to declare the symbol as weak in the header, so that\n> multiple definitions won't conflict?\n>\nYes, libstdc++ defines handle_contract_violation as weak symbol.\n\n>\n> With ELF, there can only be one strong definition of a symbol in the\n> link, and whether this works as expected depends on the contents of the\n> object file that contains the symbol definition.\n>\n> Even if the symbol is defined as weak in the header, multiple TUs\n> reacting to __cpp_lib_replaceable_contract_violation_handler need to\n> coordinate.  A simple macro does not really capture that.  A library\n> should not assume that because the macro is defined, replacing the\n> handler has the intended effect, or is indeed successful.\n>\nNote that I am implementing the paper that was voted in.\n\nAnd this feature test macro is intended for the user composing\nprograms, where they provide a single new definition of the\nhandle_contract_violation,\nin similiar manner that the operator new is overloaded.\n\nThis macro is solving a very particular quirk of the wording in\nhttps://eel.is/c++draft/basic.contract.handler#3\n> It is implementation-defined whether the contract-violation handler is\nreplaceable ([dcl.fct.def.replace]\n<https://eel.is/c++draft/dcl.fct.def.replace#term.replaceable.function>).\n<https://eel.is/c++draft/basic.contract.handler#3.sentence-1>\nIf the contract-violation handler is not replaceable, a declaration of a\nreplacement function for the contract-violation handler is ill-formed, no\ndiagnostic required.\n<https://eel.is/c++draft/basic.contract.handler#3.sentence-2>\n\nThe wording here means that if your program override for handle_contract_\nviolation, <https://eel.is/c++draft/basic.contract#handler-1.sentence-1>\nbut implementation does not support replacing it, you whole program is\nmeanigless.\nThe intent of this macro is to check if you even can attemt to provide\ndeclaration.\n\n\n> Thanks,\n> Florian\n>\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=FEc0CTl7;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=FEc0CTl7","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.129.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4frRHT0zM4z1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 09 Apr 2026 01:07:01 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 4908B4BA2E2A\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  8 Apr 2026 15:06:59 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by sourceware.org (Postfix) with ESMTP id 8D6424BA2E38\n for <gcc-patches@gcc.gnu.org>; Wed,  8 Apr 2026 15:05:02 +0000 (GMT)","from mail-yw1-f198.google.com (mail-yw1-f198.google.com\n [209.85.128.198]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-517-KyF4bcciPMenNEcLONYSxg-1; Wed, 08 Apr 2026 11:05:00 -0400","by mail-yw1-f198.google.com with SMTP id\n 00721157ae682-7a1f794a45fso64148667b3.2\n for <gcc-patches@gcc.gnu.org>; Wed, 08 Apr 2026 08:05:00 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 4908B4BA2E2A","OpenDKIM Filter v2.11.0 sourceware.org 8D6424BA2E38"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 8D6424BA2E38","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 8D6424BA2E38","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775660702; cv=none;\n b=XEd+ws/jG6U893yZE68B4/hnWnCK1kTbyuFaaienhY1P8WVwzVhFniLPpdFkuSP1txZ/QXytV/45fCGrDbUW55ddd6LoPO4moNEt3gYXo4s49A8dpMuM7LnnncChSt1P9y4uILvLbShwTg3pk+FPNhndtSPvLkHLhI+IEDiH4As=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775660702; c=relaxed/simple;\n bh=tSuMzBAxlmIEGkLfJYuzc4s+Tqj+hOzq9G1ObhDGLqA=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=r51Uk5u7uSZv1+T063h5Y4bpYHEeKIIVkIPEHkkcJj67ZDZiiF9BuOuv0iWcaMBN1A+63jM9TB3aRTsZXIElaI2SCBnBovYF2tXYH7Ryz/HHL/VBRy1K49XZZBtZS8N32Eh5qQ5eSsRfo0SHmaVD59n0wr7fbuyuI3jWBc+oS+w=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1775660702;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=GV09ZSOAD52p6O7JXdd/K2IvQakibmBnAk41nVTckwQ=;\n b=FEc0CTl7nxrBJbICYmI49JLjRMgYrgO0ZdvG1j+il/eanyixKRGnVxBkaABbka7g25Lxm0\n BZQFgCb6fe6O34fMuHl/uEG6fqdcl1BXG+dGwD/ZQBLLQlndwMxcpJh0CoLHnZszTCJlfp\n In5mWlRKjVjUrbFtHoUAfzGWVwFzmr4=","X-MC-Unique":"KyF4bcciPMenNEcLONYSxg-1","X-Mimecast-MFC-AGG-ID":"KyF4bcciPMenNEcLONYSxg_1775660700","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775660700; x=1776265500;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=GV09ZSOAD52p6O7JXdd/K2IvQakibmBnAk41nVTckwQ=;\n b=iotRp5c7vupZXwCDHDPg0YbwZaxvC2JQXEag0gAyX5GTzpPuM7KOsvAxJqFfFR50lu\n ZwNG23TBTc3g/kfvFaOPX5l2Sb8JyZbZ34ANubYk/cypjvuHFNymCInAzBpt56yEIpzU\n ab2yCIrDKh/DzUjeCNdbD/LnmMczQXTE/nke+0qnEnZOgnllcP3pxrhY2QPT+DN7xawD\n 7BjGDit5X5hrtrnmXCZ/Gy6FfObBhb1oWqQEi/fTYkPTR52kUL5n+koHBgoCvF/ScrfO\n Dl6ItpD2AmLDPcCRv+LXIvYflu2eXQWPjynyE7Z+LIiAOrhSTsIeZGz76U4MWWPJipRg\n e+uA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUYNrJ2w2KLMBakFbxNhzWtrLxxglTJAEC/jpEW0l7KhSi3pJGfpnVvJA7tEmmh5HcBrB3KUFReHdbmzg==@gcc.gnu.org","X-Gm-Message-State":"AOJu0YypTf436h1rpcIxk139mGRFx3MrHcOuo7S28X6I2wDwAad+d8Jd\n XgGlp6G2JpYAdeNcAYfsrYxGntBAe+nHF7cOQ8ZNbEXZuuJbkXo1URMGsHwjlvwOHpN9uh5W0uz\n htc9WXESu8yWM4qtKtvKnBIl5Vz3fX3P5tvmQJQJN5dewR+omZDSoqIzvZ6LN4t3wb6FoymLv6t\n GDmQY8w2A9FFOXM7i8L9Yn9B+HM+04k8tP3w==","X-Gm-Gg":"AeBDiet14I++zNqaxnrpNUy0D7jstxBKGQyXRmKDK/uCcQ0Y3NEJ67mEiZp1TNtUUDp\n DA5I3zzhrVr0PPdA2Un6dY9kHPvi/bF+5dxgCYHn6u7aHDWXGiUAuEHhEGaShTs3DIu9khWzQqx\n ULJkz8MadbTh/IEjgwswFn5SG4QSWghQxcVS4hkxz3BWXymDEY06qqUZqWhExUePExXMKz6EKuj\n Mg4bzkn0gEypJi0jzm9MHA+gL1zLExLcCh8nDXywXURzqfexdhSE8RxzRK6P/wYSkvD","X-Received":["by 2002:a05:690c:dd4:b0:79b:deb2:f5d3 with SMTP id\n 00721157ae682-7a4d31e5f54mr203031557b3.7.1775660698399;\n Wed, 08 Apr 2026 08:04:58 -0700 (PDT)","by 2002:a05:690c:dd4:b0:79b:deb2:f5d3 with SMTP id\n 00721157ae682-7a4d31e5f54mr203029217b3.7.1775660696131; Wed, 08 Apr 2026\n 08:04:56 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260408135939.266955-1-tkaminsk@redhat.com>\n <lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","In-Reply-To":"<lhuo6jtmrtu.fsf@oldenburg.str.redhat.com>","From":"Tomasz Kaminski <tkaminsk@redhat.com>","Date":"Wed, 8 Apr 2026 17:04:44 +0200","X-Gm-Features":"AQROBzDUZi-HY8ZMbH6o77fqI8VrEQSI590004eYr1xOJc_6nZ4SpbDbpYgP4V0","Message-ID":"\n <CAKvuMXA9r+GvBQAa_+WBZ=Osptz9tj6hGnPhuH6rHjpfjgnHAQ@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","To":"Florian Weimer <fweimer@redhat.com>","Cc":"libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"Ux6jbG0WZBWB-sWDpw8UmpDfnq9Wml1GRHYfle-ET8Y_1775660700","X-Mimecast-Originator":"redhat.com","Content-Type":"multipart/alternative; boundary=\"00000000000008fa80064ef439fc\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}},{"id":3676638,"web_url":"http://patchwork.ozlabs.org/comment/3676638/","msgid":"<CACb0b4n=Rn0iiWfwDb-Xp7rD+=yxjFHcr+HtZ8dStrfukuX7ug@mail.gmail.com>","list_archive_url":null,"date":"2026-04-13T10:41:31","subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","submitter":{"id":48004,"url":"http://patchwork.ozlabs.org/api/people/48004/","name":"Jonathan Wakely","email":"jwakely@redhat.com"},"content":"On Wed, 8 Apr 2026 at 15:03, Tomasz Kamiński <tkaminsk@redhat.com> wrote:\n>\n> This implements P3886R0: Wording for AT1-057, by defining the\n> __cpp_lib_replaceable_contract_violation_handler. The macro is defined\n> only if contracts are supported (i.e. under same conditions as\n> __cpp_lib_contracts).\n>\n> GCC supports providing custom violation handler by providing an separate\n> defintion of handle_contract_violation. This is supported on the targets\n> that uses ELF format, so the macro is defined for with non-zero value\n> for them.\n>\n> libstdc++-v3/ChangeLog:\n>\n>         * include/bits/version.def (replaceable_contract_violation_handler)\n>         [(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]:\n>         Define to 202603 for ELF targets, and 0 otherwise.\n>         * include/bits/version.h: Regenerate.\n>         * include/std/contracts: Define\n>         __cpp_lib_replaceable_contract_violation_handler.\n> ---\n> From the discussion with Jason, this for sure is supported for ELF\n> targets. We were not sure regarding Darwin, but we could always expand\n> the set of targets where macro is defined.\n>\n> OK for trunk?\n\nOK\n\n\n>\n>  libstdc++-v3/include/bits/version.def | 15 +++++++++++++++\n>  libstdc++-v3/include/bits/version.h   | 15 +++++++++++++++\n>  libstdc++-v3/include/std/contracts    |  1 +\n>  3 files changed, 31 insertions(+)\n>\n> diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def\n> index cfb90533ce4..65a1d6d2660 100644\n> --- a/libstdc++-v3/include/bits/version.def\n> +++ b/libstdc++-v3/include/bits/version.def\n> @@ -2351,6 +2351,21 @@ ftms = {\n>    };\n>  };\n>\n> +ftms = {\n> +  name = replaceable_contract_violation_handler;\n> +  values = {\n> +    v = 202603;\n> +    cxxmin = 26;\n> +    extra_cond = \"__cpp_contracts >= 202502L \"\n> +    \"&& __ELF__\";\n> +  };\n> +  values = {\n> +    v = 0;\n> +    cxxmin = 26;\n> +    extra_cond = \"__cpp_contracts >= 202502L\";\n> +  };\n> +};\n> +\n>  ftms = {\n>    name = simd;\n>    values = {\n> diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h\n> index 22dd31b9d32..4059a8a767b 100644\n> --- a/libstdc++-v3/include/bits/version.h\n> +++ b/libstdc++-v3/include/bits/version.h\n> @@ -2626,6 +2626,21 @@\n>  #endif /* !defined(__cpp_lib_contracts) */\n>  #undef __glibcxx_want_contracts\n>\n> +#if !defined(__cpp_lib_replaceable_contract_violation_handler)\n> +# if (__cplusplus >  202302L) && (__cpp_contracts >= 202502L && __ELF__)\n> +#  define __glibcxx_replaceable_contract_violation_handler 202603L\n> +#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)\n> +#   define __cpp_lib_replaceable_contract_violation_handler 202603L\n> +#  endif\n> +# elif (__cplusplus >  202302L) && (__cpp_contracts >= 202502L)\n> +#  define __glibcxx_replaceable_contract_violation_handler 0L\n> +#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)\n> +#   define __cpp_lib_replaceable_contract_violation_handler 0L\n> +#  endif\n> +# endif\n> +#endif /* !defined(__cpp_lib_replaceable_contract_violation_handler) */\n> +#undef __glibcxx_want_replaceable_contract_violation_handler\n> +\n>  #if !defined(__cpp_lib_simd)\n>  # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__cpp_structured_bindings >= 202411L && __cpp_expansion_statements >= 202411L && __SSE2__)\n>  #  define __glibcxx_simd 202506L\n> diff --git a/libstdc++-v3/include/std/contracts b/libstdc++-v3/include/std/contracts\n> index c1fe54750af..a0575fbefd9 100644\n> --- a/libstdc++-v3/include/std/contracts\n> +++ b/libstdc++-v3/include/std/contracts\n> @@ -33,6 +33,7 @@\n>  #pragma GCC system_header\n>\n>  #define __glibcxx_want_contracts\n> +#define __glibcxx_want_replaceable_contract_violation_handler\n>  #include <bits/version.h>\n>\n>  #ifdef __cpp_lib_contracts\n> --\n> 2.53.0\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=blj22Hj7;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=blj22Hj7","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.133.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvP9w2PjMz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 20:42:26 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 97A6C4BA2E2D\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 10:42:24 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id D74C74BA2E0A\n for <gcc-patches@gcc.gnu.org>; Mon, 13 Apr 2026 10:41:50 +0000 (GMT)","from mail-yx1-f72.google.com (mail-yx1-f72.google.com\n [74.125.224.72]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-400-tW4n4L0PPFmQqHsFGIvCWA-1; Mon, 13 Apr 2026 06:41:49 -0400","by mail-yx1-f72.google.com with SMTP id\n 956f58d0204a3-651bd9b4bccso1732562d50.3\n for <gcc-patches@gcc.gnu.org>; Mon, 13 Apr 2026 03:41:49 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 97A6C4BA2E2D","OpenDKIM Filter v2.11.0 sourceware.org D74C74BA2E0A"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org D74C74BA2E0A","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org D74C74BA2E0A","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776076911; cv=none;\n b=VhJ8DINSk32WxKvY4brKZyAeemc5QbS6CLLZoCRxMalEB+ypMVVIZ4VDsdaMCTGeRrkbF+j3ze+tNgoXM0KCX5j9eHA6OG6sSVZyB0fhf8qx+/vjQtMSuqFgWn4MOZfnNF4dzFkdJ9XDzqokcR+RmRO8bXBGV9W4rFbN49cPbb4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776076911; c=relaxed/simple;\n bh=A7b84QW2xtziRoEfsxtj8SdKX+83W9ylJDb6J11hpwY=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=TAH+6Uyq25FdZEeczuxWBbGIUrDYLl0TAT1i6U89SzD9sc80Pb2HqyzpyuuOyZArjfeHw6l3DsJ5/sWu/xN5MhqtzdQajSsSjoDTCeiPN54YoUhyBgcQ+wf3yO+xxa/X0LuAMTjYiQA+k9K3jLe9KVJmpFIN20RVC0fY/KA3cY4=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776076910;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=i0QSsbruU2dnEZ5BBWOX+1NKMf/c3Vb/j0rFhiQ2RGE=;\n b=blj22Hj7/8fxMoFpySRczTh/Xw2zWms1R8mPkhJqFuZRxo5eDhqxFqPFwcLwB96IaQmwsd\n gPbv4LAv4L32j76tx6PqpHj5rCnwJgJrPCRqXyqwWkk6pEZX9/nVzTz6b9UMkR4t9s1k2y\n vKeOJ0RnevWrM92/yvKLdPHp4RXMkrA=","X-MC-Unique":"tW4n4L0PPFmQqHsFGIvCWA-1","X-Mimecast-MFC-AGG-ID":"tW4n4L0PPFmQqHsFGIvCWA_1776076909","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776076908; x=1776681708;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=i0QSsbruU2dnEZ5BBWOX+1NKMf/c3Vb/j0rFhiQ2RGE=;\n b=XQnTMB8PFb2WKnkDZMhQXDFvb4uZ3uYL1keBybrr10Azu7/Pk4QNTaSXXVycshIGvh\n tTe2elTKlAAz31flWhbcGPx0DuyfsFAoCv8+NO+m/XrfBm+GlkvNg0f2g7NLh+sV0G+Y\n 4rs7u3lPy41ZIrxg85pT8LXRrmPWv5cb/s3fjGVpbUIk9WfLdczJkqH0BS2CtyFy5wcY\n eCEJ9o4bbtCV1oiuRwzVKCtTHedh5CDwC4jxEMVlM5Sum4CFFxhnSVMh+VZOhIMMxMBu\n xayVXyXATucJkiKvLz3+sFvMugoHyc/bqfB12ct/y6Rew2hBs9fMAU/v/9CUu3z4iy48\n shSA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8V8iNsaxEUBC5unn6vgp7hSD5bflPaSBqkbjfGk/fO6Ov4fRj+aYa9bYVnZTRhMmKMguq5YrIxRqTUCA==@gcc.gnu.org","X-Gm-Message-State":"AOJu0Yws0/AtYbVWrBd2NK+Ly8t20oJn3IJ04jSXo3g3cx2Ct1AaVEaL\n nTvNwpfYXlbA4kk+JwhMUnpEDnScVZrtH6g6/mMYnGLgNfTErF9poVshq9iWlc9klIibEO6LUCP\n ggLryLW+ke5Tg3RuJn//mWWLuQzbXw3M0/KWNYWQPMDtO09aE4cuqqxuGd9gZCaQKzKVcUdLalm\n /h6pta2yk6L7FiSPl3BItE6xsjaYAou1f7BA==","X-Gm-Gg":"AeBDiethNrvbO9ISE/3YkWAcCijKI6JhKZ1FagyU3K0V0uaqT5gcw8RORX4AWxp+xXZ\n kvnqPQ8c7KXYMyuQWz7XalixQx/UjC+WoKV+092ZTMHRtYtWqRKXJsni/wEKize159dB5765iEe\n fQCBLdCa8Jc44fnLtS433vVYGqGjD4WZuE8/VPgN9HF+G4m7m4y5aVktRuoh545Wx0xvJEnoiaN\n +W+kiUeNXOCQ4PMlwr1GNKESN+JxDMIPtGmeCHulGv9B/un+W1i9bA1VT1NAniiJg8=","X-Received":["by 2002:a05:690e:1909:b0:651:bcd7:709e with SMTP id\n 956f58d0204a3-651bcd77344mr5043189d50.46.1776076908600;\n Mon, 13 Apr 2026 03:41:48 -0700 (PDT)","by 2002:a05:690e:1909:b0:651:bcd7:709e with SMTP id\n 956f58d0204a3-651bcd77344mr5043166d50.46.1776076908165; Mon, 13 Apr 2026\n 03:41:48 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260408135939.266955-1-tkaminsk@redhat.com>","In-Reply-To":"<20260408135939.266955-1-tkaminsk@redhat.com>","From":"Jonathan Wakely <jwakely@redhat.com>","Date":"Mon, 13 Apr 2026 11:41:31 +0100","X-Gm-Features":"AQROBzD1VoMeOuPgw6LGhHVD2ompvU-gUevxckk9OuYvhwDhK9jSeg33bTh9iDc","Message-ID":"\n <CACb0b4n=Rn0iiWfwDb-Xp7rD+=yxjFHcr+HtZ8dStrfukuX7ug@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Defined\n __cpp_lib_replaceable_contract_violation_handler.","To":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>","Cc":"libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"-RofL13st3Z2UzHIyl1j8X7oVbJqqjUEUXBN3zsdEGE_1776076909","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]