[{"id":3683895,"web_url":"http://patchwork.ozlabs.org/comment/3683895/","msgid":"<CAH6eHdRfxcGwsmCG-m+8DmNyD1dC_7+4KgnaeNdQNAM=vE57Xw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-29T08:24:23","subject":"Re: [PATCH] libstdc++: Test ATOMIC_*_LOCK_FREE macros for\n <stdatomic.h>","submitter":{"id":4329,"url":"http://patchwork.ozlabs.org/api/people/4329/","name":"Jonathan Wakely","email":"jwakely.gcc@gmail.com"},"content":"On Wed, 29 Apr 2026, 08:50 Tomasz Kamiński, <tkaminsk@redhat.com> wrote:\n\n> Coverage for LWG 4480, \"<stdatomic.h> should provide\n> ATOMIC_CHAR8_T_LOCK_FREE\".\n>\n> libstdc++-v3/ChangeLog:\n>\n>         * testsuite/29_atomics/headers/stdatomic.h/macros.cc:\n>         Copy of ../atomic/macros.cc with header include changed.\n> ---\n> Keeping the FSF copyright header, as it is plain copy with minimal\n> modificaiton.\n>\n\nThen it should preserve the original copyright dates from the file that was\ncopied, 2008-2026.\n\nOK with that change, thanks.\n\n\n\n> Tested on x86_64-linux. OK for trunk?\n>\n>  .../29_atomics/headers/stdatomic.h/macros.cc  | 96 +++++++++++++++++++\n>  1 file changed, 96 insertions(+)\n>  create mode 100644\n> libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.cc\n>\n> diff --git\n> a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.cc\n> b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.cc\n> new file mode 100644\n> index 00000000000..e76b611e676\n> --- /dev/null\n> +++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.cc\n> @@ -0,0 +1,96 @@\n> +// { dg-do preprocess { target c++23 } }\n> +\n> +// Copyright (C) 2026 Free Software Foundation, Inc.\n> +//\n> +// This file is part of the GNU ISO C++ Library.  This library is free\n> +// software; you can redistribute it and/or modify it under the\n> +// terms of the GNU General Public License as published by the\n> +// Free Software Foundation; either version 3, or (at your option)\n> +// any later version.\n> +\n> +// This library is distributed in the hope that it will be useful,\n> +// but WITHOUT ANY WARRANTY; without even the implied warranty of\n> +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n> +// GNU General Public License for more details.\n> +\n> +// You should have received a copy of the GNU General Public License along\n> +// with this library; see the file COPYING3.  If not see\n> +// <http://www.gnu.org/licenses/>.\n> +\n> +#include <stdatomic.h>\n> +\n> +#ifndef ATOMIC_BOOL_LOCK_FREE\n> +# error \"ATOMIC_BOOL_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_BOOL_LOCK_FREE != 1 && ATOMIC_BOOL_LOCK_FREE != 2\n> +# error \"ATOMIC_BOOL_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_CHAR_LOCK_FREE\n> +# error \"ATOMIC_CHAR_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_CHAR_LOCK_FREE != 1 && ATOMIC_CHAR_LOCK_FREE != 2\n> +# error \"ATOMIC_CHAR_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifdef _GLIBCXX_USE_CHAR8_T\n> +# ifndef ATOMIC_CHAR8_T_LOCK_FREE\n> +#  error \"ATOMIC_CHAR8_T_LOCK_FREE must be a macro\"\n> +# elif ATOMIC_CHAR8_T_LOCK_FREE != 1 && ATOMIC_CHAR8_T_LOCK_FREE != 2\n> +#  error \"ATOMIC_CHAR8_T_LOCK_FREE must be 1 or 2\"\n> +# endif\n> +#endif\n> +\n> +#ifndef ATOMIC_CHAR16_T_LOCK_FREE\n> +# error \"ATOMIC_CHAR16_T_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_CHAR16_T_LOCK_FREE != 1 && ATOMIC_CHAR16_T_LOCK_FREE != 2\n> +# error \"ATOMIC_CHAR16_T_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_CHAR32_T_LOCK_FREE\n> +# error \"ATOMIC_CHAR32_T_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_CHAR32_T_LOCK_FREE != 1 && ATOMIC_CHAR32_T_LOCK_FREE != 2\n> +# error \"ATOMIC_CHAR32_T_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_WCHAR_T_LOCK_FREE\n> +# error \"ATOMIC_WCHAR_T_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_WCHAR_T_LOCK_FREE != 1 && ATOMIC_WCHAR_T_LOCK_FREE != 2\n> +# error \"ATOMIC_WCHAR_T_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_SHORT_LOCK_FREE\n> +# error \"ATOMIC_SHORT_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_SHORT_LOCK_FREE != 1 && ATOMIC_SHORT_LOCK_FREE != 2\n> +# error \"ATOMIC_SHORT_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_INT_LOCK_FREE\n> +# error \"ATOMIC_INT_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_INT_LOCK_FREE != 1 && ATOMIC_INT_LOCK_FREE != 2\n> +# error \"ATOMIC_INT_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_LONG_LOCK_FREE\n> +# error \"ATOMIC_LONG_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_LONG_LOCK_FREE != 1 && ATOMIC_LONG_LOCK_FREE != 2\n> +# error \"ATOMIC_LONG_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_LLONG_LOCK_FREE\n> +# error \"ATOMIC_LLONG_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_LLONG_LOCK_FREE != 1 && ATOMIC_LLONG_LOCK_FREE != 2\n> +# error \"ATOMIC_LLONG_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_POINTER_LOCK_FREE\n> +# error \"ATOMIC_POINTER_LOCK_FREE must be a macro\"\n> +#elif ATOMIC_POINTER_LOCK_FREE != 1 && ATOMIC_POINTER_LOCK_FREE != 2\n> +# error \"ATOMIC_POINTER_LOCK_FREE must be 1 or 2\"\n> +#endif\n> +\n> +#ifndef ATOMIC_FLAG_INIT\n> +    #error \"ATOMIC_FLAG_INIT_must_be_a_macro\"\n> +#endif\n> +\n> +#ifndef ATOMIC_VAR_INIT\n> +    #error \"ATOMIC_VAR_INIT_must_be_a_macro\"\n> +#endif\n> --\n> 2.54.0\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=apGLMDkH;\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=apGLMDkH","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\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 4g59NC2VbSz1yK5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 18:25:14 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 09F434BB24C1\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 08:25:12 +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 7C48F4BA2E36\n for <gcc-patches@gcc.gnu.org>; Wed, 29 Apr 2026 08:24:36 +0000 (GMT)","by mail-lj1-f177.google.com with SMTP id\n 38308e7fff4ca-38ea6a5a0b3so122444421fa.3\n for <gcc-patches@gcc.gnu.org>; Wed, 29 Apr 2026 01:24:36 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 09F434BB24C1","OpenDKIM Filter v2.11.0 sourceware.org 7C48F4BA2E36"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 7C48F4BA2E36","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 7C48F4BA2E36","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1777451076; cv=pass;\n b=W8imCaR2P12dTkyAyya9tLlqX/vnkdcRN/fyP25wzcVQHejQvz292/3wf6jmfkKKd1vYtYdQFumaqkBl92THrD3EUjmWiD4xvjZS8WFAcVWdz6N/xCWzoxWQ/6QmHkYrSBKCqCQ2vyBkQdy/28L29hTD62egom8q9MhlivgRWXI=","i=1; a=rsa-sha256; t=1777451075; cv=none;\n d=google.com; s=arc-20240605;\n b=EDcDxhUqcpK1C8CSidESWx2U1+m7m9o0zxITtBYLfWzieAp7olK5Q8my3PIVlslcM3\n paO66OVhh0XYL3gTvajIY8T0ubx9gxVzpEcV0Wluvdy6hd65A3jdqxKGNzSqxTIPQhCr\n bmvkxXo0629P1XSRduXWmxyL7zjItuDaLDtAqAyGUGnAXRe2wxLFUqKpTJmg+oUrL5vr\n llHXWhMoN9Do/tV2tscChV4N+4l0W84RlnBoOu0k/RXMN7IpBJupWcv7JnS0bVnMeWBR\n llR2Kax5jBBKh/J8VMTAZGhWgcwX6yuWwQyVFI0loRXfTOaHRTgflVCHidSf2NACj+oS\n Khag=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777451076; c=relaxed/simple;\n bh=vStXA7g1HOmP/hbk7OEe3EnPk+o9ZtszQ2M/Prw+KdY=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=Dno3Fl+92+MnZjboqAHFQrjYY/kJ7QFBac7KLC0z/gEpSMh+nBweX0nTm+zNe5+VOvtRfg2sz0VBhG2soFK4K5GzF0iITos406CGilNPxfcrvgoFEfpGPBhPrB/LRo8n01pR58I0uoai9w2t1iCs96K+j6Yp6NiAb5Lz9tBMiC8=","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=GUus79c8b6q/0jTbnBC7XHiMOoBFNuwhVnPamQccHGA=;\n fh=SdI7CmaMNfaYYR96dfWzz7SHxBfhmxNisomZHoLWPDM=;\n b=j2M2OxzwCg1azXHdjA6h2NueWEjYD4HlMr9s5QPb1qwBGXjlZ95nqnsme6torlFS2v\n nfkHZpu6WRG6irBFN6nqpRqRwvw8EhbTgwRaNIhq01G++Fk15rjtAFJauHVXs9kctegs\n JxZ9L0gxkSs/EWKCTUmeFOF2XVxyaWyAlRiDAX5vdy8b6uXo2fiZscmUk01tP8LU4P1Q\n 1w2lGACSbx+jHNSvIa4eUrRTgT/Om3cZ5Cu+acpUVIhYpWuDtlI79D6YAIREZF2GUXiQ\n 3AvCfPRaSkGpmACvKXsq9sMD6Lz9709yhqzY+M2PcQDafW0f/mHQfFY1XI0FMfv2PCea\n r15w==; 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=1777451075; x=1778055875; 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=GUus79c8b6q/0jTbnBC7XHiMOoBFNuwhVnPamQccHGA=;\n b=apGLMDkHIqf46Tq5ScjYtYz6j2DI5YVHAZYPnHZmU3anPmvrtyhFnh2SeuuJt4HPPI\n nBg2RjROeL7hh+era2lwKNzK889fSAnLz/85/k37eEV0zUuL5lSl0e1zw88uGG69SHVv\n uROR5sSlO5n50gkKNGV6bJ68/RhvWtXZqrQqrGaP2TtjpVrO3xjCxTzOPOtH0UndZxsj\n iig4tnRxFNM5P/T7JyugvPN4V4BssHbj9R3b+byowNOnSOBB9MKFoO9DOg0iPJoe9kkX\n R6JdVGGISCtnTSKiXpp3Qpjl6ednB61cIyjDPrsDTcijKrceUifDeuAxMVmjAVy/01j/\n 6KOA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777451075; x=1778055875;\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=GUus79c8b6q/0jTbnBC7XHiMOoBFNuwhVnPamQccHGA=;\n b=gPbnZvRo8aSdrRexe22txyqz+Q/7O8RETm1eOor+TLg8UTCH6czKSL51KDBezkLUTj\n jgf9+axpV+3AapsU1pS+bWWCTyz3ec9btLUC/HJzCs62VUlzeIqJ2F+v3EdSe6s1MrAX\n lMQrtFvwmBWmHd9AFGuHEPmtU//LVrkAWawX72i2N4mUtSEMIh3IXdzq9w+iyj8X5N2e\n MuyBZKMKME6eDCdXjvjAa0E/5PZuiEJJqaQYs88zPlfRH4luajGVUO+xu7VjtLimp0B2\n LpmGBVDfUyt8go10Kf8Yh1oIYdIB0t3D71AiHx8ce2Lh6gMGrLvacLancYBb0iCxF2bf\n qRFA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/v678yVe7B1DxrklBeaazn5vkMn3Ao0SDDRSoX3eumBUW3VaJ7OBcZu6gJB6DW5L6yEK/BmTyDp/tq3A==@gcc.gnu.org","X-Gm-Message-State":"AOJu0YyB5pHy8aPbIbXViMAkWJpy1cEslpIwW/zCNhj+8HcWsvn68QXB\n hsrTakFEIUwZY6AmlUcsy2WFJJ/eZCBi7+jnzp7Q3x9IIlZ0zkT8+3QM96FfmQTywYengXo2Ir9\n la8BT6WV7Z+roLiULegU4CCSl8Z+o4Lnj3O3B","X-Gm-Gg":"AeBDiesYkVS7V1c28BQwBK0lRTUespTkA9Qrw+y64xM/puw193lpU0g713uLjs2g5Th\n r2GJUz9L+xwDxgR5kGKIVIYlAtX1Cv5QybI7EXEGuAihfcMNLy8dbWlpOt6t6q2vI/Tl19fNo67\n /dj8hOiFX4aGa7TMXNGGOPFMkySxGHwDOBmlPAVszXfAQDj2Ej3YT8z0HD7he++lIF96V80u8K8\n MT88LyoQQbXuqqb10Sys2oWjW22/N59/+xhOWHCjMpTp8nuqVeuhDxc6tmDRxWhX4ukyXMAwMHp\n +MX0NY74NdCUSNstRimOnVkCzUZKOrj3nzyC+iaSuxRlvebls1NawpJDTUCnAD12Ji12N9ZrIK0\n 3Sg4=","X-Received":"by 2002:a05:6512:40c4:10b0:5a7:46dc:6402 with SMTP id\n 2adb3069b0e04-5a746dc6533mr1818892e87.12.1777451074704; Wed, 29 Apr 2026\n 01:24:34 -0700 (PDT)","MIME-Version":"1.0","References":"<20260429074945.65588-1-tkaminsk@redhat.com>","In-Reply-To":"<20260429074945.65588-1-tkaminsk@redhat.com>","From":"Jonathan Wakely <jwakely.gcc@gmail.com>","Date":"Wed, 29 Apr 2026 09:24:23 +0100","X-Gm-Features":"AVHnY4LcTdbY-fKHEhmCsrWJkU80zhfwyhaeJFnKVC2HYjDd6Ow8xPDMwFszpcU","Message-ID":"\n <CAH6eHdRfxcGwsmCG-m+8DmNyD1dC_7+4KgnaeNdQNAM=vE57Xw@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Test ATOMIC_*_LOCK_FREE macros for\n <stdatomic.h>","To":"=?utf-8?q?Tomasz_Kami=C5=84ski?= <tkaminsk@redhat.com>","Cc":"\"libstdc++\" <libstdc++@gcc.gnu.org>, gcc-patches <gcc-patches@gcc.gnu.org>","Content-Type":"multipart/alternative; boundary=\"000000000000e9dab706509513f8\"","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"}}]