From: Jonathan Wakely Date: Wed, 7 Oct 2020 23:05:53 +0000 (+0100) Subject: libstdc++: Fix non-reserved names in headers X-Git-Tag: releases/gcc-10.3.0~798 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fe0032699636a2c75ebca11f1c878f1dedde554;p=thirdparty%2Fgcc.git libstdc++: Fix non-reserved names in headers Fix some bad uses of "ForwardIterator" in . There's also a "il" parameter in a std::seed_seq constructor in which is only reserved since C++14. libstdc++-v3/ChangeLog: * include/bits/random.h (seed_seq(initializer_list)): Rename parameter to use reserved name. * include/bits/ranges_algo.h (shift_left, shift_right): Rename template parameters to use reserved name. * testsuite/17_intro/names.cc: Check "il". Do not check "d" and "y" in C++20 mode. (cherry picked from commit 23f75da95f5e8e09e9fcbd5b0d2885e6c44739aa) --- diff --git a/libstdc++-v3/include/bits/random.h b/libstdc++-v3/include/bits/random.h index 19307fbc3ca4..4a6558c966a2 100644 --- a/libstdc++-v3/include/bits/random.h +++ b/libstdc++-v3/include/bits/random.h @@ -6063,7 +6063,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { } template - seed_seq(std::initializer_list<_IntType> il); + seed_seq(std::initializer_list<_IntType> __il); template 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 33c6778db477..4d4f7401615e 100644 --- a/libstdc++-v3/include/bits/ranges_algo.h +++ b/libstdc++-v3/include/bits/ranges_algo.h @@ -3693,10 +3693,10 @@ namespace ranges } // namespace ranges #define __cpp_lib_shift 201806L - template - constexpr ForwardIterator - shift_left(ForwardIterator __first, ForwardIterator __last, - typename iterator_traits::difference_type __n) + template + constexpr _ForwardIterator + shift_left(_ForwardIterator __first, _ForwardIterator __last, + typename iterator_traits<_ForwardIterator>::difference_type __n) { __glibcxx_assert(__n >= 0); if (__n == 0) @@ -3708,16 +3708,17 @@ namespace ranges return std::move(std::move(__mid), std::move(__last), std::move(__first)); } - template - constexpr ForwardIterator - shift_right(ForwardIterator __first, ForwardIterator __last, - typename iterator_traits::difference_type __n) + template + 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::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/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc index 2b6c3eb017dd..5a61c97e9899 100644 --- a/libstdc++-v3/testsuite/17_intro/names.cc +++ b/libstdc++-v3/testsuite/17_intro/names.cc @@ -52,9 +52,10 @@ #define b ( #endif // and defined data members called c -#define d ( #if __cplusplus <= 201703L -// defines std::numbers::e +// defines operator""d in C++20 +#define d ( +// 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 +// defines operator""y in C++20 #define y ( +#endif #define z ( #define tmp ( @@ -107,6 +111,11 @@ #define uses_allocator ( #endif +#if __cplusplus < 201402L +// defines operator""il +#define il ( +#endif + #if __cplusplus < 201703L // defines to_chars_result::ptr and to_chars_result::ec #define ec (