aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-06-14 10:58:15 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-06-14 11:53:29 +0100
commit917efba2dd4ff34336d0d3aa55285ae22503e4aa (patch)
tree143cc46d9c9bef9b33d14e137da7fb460bf0ae9e
parent08ce1f4c5091b80b680d15c53a17237544a3cca8 (diff)
downloadgcc-917efba2dd4ff34336d0d3aa55285ae22503e4aa.zip
gcc-917efba2dd4ff34336d0d3aa55285ae22503e4aa.tar.gz
gcc-917efba2dd4ff34336d0d3aa55285ae22503e4aa.tar.bz2
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.
-rw-r--r--libstdc++-v3/include/std/tuple2
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc1
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc1
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++2017/all_attributes.cc1
4 files changed, 4 insertions, 1 deletions
diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index 3b771c5..2d562f8 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<size_t _Idx, typename _Head>
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 c5c94ad..c38fc7d 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 c8f0362..65d273d 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 c4e38d6..811b3fe 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.