Although the compiler supports the [[no_unique_address]] attribute, it's
not a reserved name prior to C++20, so we can't use it in std::tuple.
Use [[__no_unique_address__]] instead.
libstdc++-v3/ChangeLog:
* include/std/tuple (_Head_base<Idx, Head, true>): Use reserved
form of __no_unique_address__ attribute because
no_unique_address is not reserved prior to C++20.
Tested powerpc64le-linux. Committed to trunk.
commit fc77484c4a4feb308c64371233cb65b280333953
Author: Jonathan Wakely <[email protected]>
Date: Mon Oct 19 17:57:14 2020
libstdc++: Use reserved name for C++20 attribute
Although the compiler supports the [[no_unique_address]] attribute, it's
not a reserved name prior to C++20, so we can't use it in std::tuple.
Use [[__no_unique_address__]] instead.
libstdc++-v3/ChangeLog:
* include/std/tuple (_Head_base<Idx, Head, true>): Use reserved
form of __no_unique_address__ attribute because
no_unique_address is not reserved prior to C++20.
diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index 11ad1991108..adfd6213a14 100644
--- a/libstdc++-v3/include/std/tuple
+++ b/libstdc++-v3/include/std/tuple
@@ -122,7 +122,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static constexpr const _Head&
_M_head(const _Head_base& __b) noexcept { return __b._M_head_impl; }
- [[no_unique_address]] _Head _M_head_impl;
+ [[__no_unique_address__]] _Head _M_head_impl;
};
#else
template<size_t _Idx, typename _Head>