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 036043886C5D for ; Mon, 14 Jun 2021 10:54:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 036043886C5D Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-371-05iMCcT2P-mE1vrM2jaWFQ-1; Mon, 14 Jun 2021 06:54:00 -0400 X-MC-Unique: 05iMCcT2P-mE1vrM2jaWFQ-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D5FBC1932482; Mon, 14 Jun 2021 10:53:59 +0000 (UTC) Received: from localhost (unknown [10.33.36.175]) by smtp.corp.redhat.com (Postfix) with ESMTP id 54A59705AD; Mon, 14 Jun 2021 10:53:59 +0000 (UTC) Date: Mon, 14 Jun 2021 11:53:58 +0100 From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [committed] libstdc++: Use reserved name for attribute [PR101055] Message-ID: MIME-Version: 1.0 X-Clacks-Overhead: GNU Terry Pratchett X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="z8lzAffbVdcRQy/k" Content-Disposition: inline X-Spam-Status: No, score=-13.9 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_H4, RCVD_IN_MSPIKE_WL, 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: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2021 10:54:05 -0000 --z8lzAffbVdcRQy/k Content-Type: text/plain; charset=us-ascii Content-Disposition: inline The no_unique_address attribute is not a reserved name until C++20, so to use it in C++11/14/17 modes we should use the __no_unique_address_ form. We already use that form when using the attribute, but not in the __has_cpp_attribute check. libstdc++-v3/ChangeLog: PR libstdc++/101055 * include/std/tuple: Use reserved form of attribute name. * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add check for no_unique_address. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. Tested powerpc64le-linux. Committed to trunk. Backport to gcc-11 needed too. --z8lzAffbVdcRQy/k Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="patch.txt" commit 917efba2dd4ff34336d0d3aa55285ae22503e4aa Author: Jonathan Wakely Date: Mon Jun 14 10:58:15 2021 libstdc++: Use reserved name for attribute [PR101055] The no_unique_address attribute is not a reserved name until C++20, so to use it in C++11/14/17 modes we should use the __no_unique_address_ form. We already use that form when using the attribute, but not in the __has_cpp_attribute check. libstdc++-v3/ChangeLog: PR libstdc++/101055 * include/std/tuple: Use reserved form of attribute name. * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add check for no_unique_address. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple index 3b771c50b25..2d562f8da77 100644 --- a/libstdc++-v3/include/std/tuple +++ b/libstdc++-v3/include/std/tuple @@ -73,7 +73,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION bool = __empty_not_final<_Head>::value> struct _Head_base; -#if __has_cpp_attribute(no_unique_address) +#if __has_cpp_attribute(__no_unique_address__) template struct _Head_base<_Idx, _Head, true> { diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc index c5c94ad7702..c38fc7d4d84 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc @@ -28,6 +28,7 @@ # define deprecated 1 # define visibility 1 #endif +#define no_unique_address 1 #define packed 1 #define pure 1 // glibc's sysdeps/unix/sysv/linux/arm/sys/ucontext.h uses this on ARM. diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc index c8f036219ff..65d273db19c 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc @@ -28,6 +28,7 @@ # define deprecated 1 # define visibility 1 #endif +#define no_unique_address 1 #define packed 1 #define pure 1 // glibc's sysdeps/unix/sysv/linux/arm/sys/ucontext.h uses this on ARM. diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc b/libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc index c4e38d6423a..811b3fe3613 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc @@ -26,6 +26,7 @@ # define cold 1 # define visibility 1 #endif +#define no_unique_address 1 #define packed 1 #define pure 1 // glibc's sysdeps/unix/sysv/linux/arm/sys/ucontext.h uses this on ARM. --z8lzAffbVdcRQy/k--