[committed] libstdc++: Fix non-reserved names in headers
Jonathan Wakely
jwakely@redhat.com
Wed Oct 7 23:16:37 GMT 2020
My recent changes to std::exception_ptr moved some members to be inline
in the header but didn't replace the variable names with reserved names.
The "tmp" variable must be fixed. The "other" parameter is actually a
reserved name because of std::allocator<T>::rebind<U>::other but should
be fixed anyway.
There are also some bad uses of "ForwardIterator" in <ranges>.
There's also a "il" parameter in a std::seed_seq constructor in <random>
which is only reserved since C++14.
libstdc++-v3/ChangeLog:
* include/bits/random.h (seed_seq(initializer_list<T>)): Rename
parameter to use reserved name.
* include/bits/ranges_algo.h (shift_left, shift_right): Rename
template parameters to use reserved name.
* libsupc++/exception_ptr.h (exception_ptr): Likewise for
parameters and local variables.
* testsuite/17_intro/names.cc: Check "il". Do not check "d" and
"y" in C++20 mode.
Tested powerpc64le-linux. Committed to trunk.
-------------- next part --------------
commit 23f75da95f5e8e09e9fcbd5b0d2885e6c44739aa
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Oct 8 00:05:53 2020
libstdc++: Fix non-reserved names in headers
My recent changes to std::exception_ptr moved some members to be inline
in the header but didn't replace the variable names with reserved names.
The "tmp" variable must be fixed. The "other" parameter is actually a
reserved name because of std::allocator<T>::rebind<U>::other but should
be fixed anyway.
There are also some bad uses of "ForwardIterator" in <ranges>.
There's also a "il" parameter in a std::seed_seq constructor in <random>
which is only reserved since C++14.
libstdc++-v3/ChangeLog:
* include/bits/random.h (seed_seq(initializer_list<T>)): Rename
parameter to use reserved name.
* include/bits/ranges_algo.h (shift_left, shift_right): Rename
template parameters to use reserved name.
* libsupc++/exception_ptr.h (exception_ptr): Likewise for
parameters and local variables.
* testsuite/17_intro/names.cc: Check "il". Do not check "d" and
"y" in C++20 mode.
diff --git a/libstdc++-v3/include/bits/random.h b/libstdc++-v3/include/bits/random.h
index 19307fbc3ca..4a6558c966a 100644
--- a/libstdc++-v3/include/bits/random.h
+++ b/libstdc++-v3/include/bits/random.h
@@ -6063,7 +6063,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ }
template<typename _IntType>
- seed_seq(std::initializer_list<_IntType> il);
+ seed_seq(std::initializer_list<_IntType> __il);
template<typename _InputIterator>
seed_seq(_InputIterator __begin, _InputIterator __end);
diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index 61673e38fa6..f1a4cc24c0d 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -3696,10 +3696,10 @@ namespace ranges
} // namespace ranges
#define __cpp_lib_shift 201806L
- template<class ForwardIterator>
- constexpr ForwardIterator
- shift_left(ForwardIterator __first, ForwardIterator __last,
- typename iterator_traits<ForwardIterator>::difference_type __n)
+ template<typename _ForwardIterator>
+ constexpr _ForwardIterator
+ shift_left(_ForwardIterator __first, _ForwardIterator __last,
+ typename iterator_traits<_ForwardIterator>::difference_type __n)
{
__glibcxx_assert(__n >= 0);
if (__n == 0)
@@ -3711,16 +3711,17 @@ namespace ranges
return std::move(std::move(__mid), std::move(__last), std::move(__first));
}
- template<class ForwardIterator>
- constexpr ForwardIterator
- shift_right(ForwardIterator __first, ForwardIterator __last,
- typename iterator_traits<ForwardIterator>::difference_type __n)
+ template<typename _ForwardIterator>
+ constexpr _ForwardIterator
+ shift_right(_ForwardIterator __first, _ForwardIterator __last,
+ typename iterator_traits<_ForwardIterator>::difference_type __n)
{
__glibcxx_assert(__n >= 0);
if (__n == 0)
return __first;
- using _Cat = typename iterator_traits<ForwardIterator>::iterator_category;
+ using _Cat
+ = typename iterator_traits<_ForwardIterator>::iterator_category;
if constexpr (derived_from<_Cat, bidirectional_iterator_tag>)
{
auto __mid = ranges::next(__last, -__n, __first);
diff --git a/libstdc++-v3/libsupc++/exception_ptr.h b/libstdc++-v3/libsupc++/exception_ptr.h
index a053122d48e..4497d0e8581 100644
--- a/libstdc++-v3/libsupc++/exception_ptr.h
+++ b/libstdc++-v3/libsupc++/exception_ptr.h
@@ -180,8 +180,9 @@ namespace std
#ifndef _GLIBCXX_EH_PTR_COMPAT
inline
#endif
- exception_ptr::exception_ptr(const exception_ptr& other) _GLIBCXX_NOEXCEPT
- : _M_exception_object(other._M_exception_object)
+ exception_ptr::exception_ptr(const exception_ptr& __other)
+ _GLIBCXX_NOEXCEPT
+ : _M_exception_object(__other._M_exception_object)
{
if (_M_exception_object)
_M_addref();
@@ -200,9 +201,9 @@ namespace std
inline
#endif
exception_ptr&
- exception_ptr::operator=(const exception_ptr& other) _GLIBCXX_USE_NOEXCEPT
+ exception_ptr::operator=(const exception_ptr& __other) _GLIBCXX_USE_NOEXCEPT
{
- exception_ptr(other).swap(*this);
+ exception_ptr(__other).swap(*this);
return *this;
}
@@ -210,11 +211,11 @@ namespace std
inline
#endif
void
- exception_ptr::swap(exception_ptr &other) _GLIBCXX_USE_NOEXCEPT
+ exception_ptr::swap(exception_ptr &__other) _GLIBCXX_USE_NOEXCEPT
{
- void *tmp = _M_exception_object;
- _M_exception_object = other._M_exception_object;
- other._M_exception_object = tmp;
+ void *__tmp = _M_exception_object;
+ _M_exception_object = __other._M_exception_object;
+ __other._M_exception_object = __tmp;
}
#ifdef _GLIBCXX_EH_PTR_COMPAT
diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc
index 2b6c3eb017d..5a61c97e989 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -52,9 +52,10 @@
#define b (
#endif
// <queue> and <stack> defined data members called c
-#define d (
#if __cplusplus <= 201703L
-// <numbers> defines std::numbers::e
+// <chrono> defines operator""d in C++20
+#define d (
+// <numbers> defines std::numbers::e in C++20
#define e (
#endif
#define f (
@@ -98,7 +99,10 @@
#define v (
#define w (
#define x (
+#if __cplusplus <= 201703L
+// <chrono> defines operator""y in C++20
#define y (
+#endif
#define z (
#define tmp (
@@ -107,6 +111,11 @@
#define uses_allocator (
#endif
+#if __cplusplus < 201402L
+// <complex> defines operator""il
+#define il (
+#endif
+
#if __cplusplus < 201703L
// <charconv> defines to_chars_result::ptr and to_chars_result::ec
#define ec (
More information about the Gcc-patches
mailing list