libstdc++: Fix uses of non-reserved names in headers

The non-reserved names 'val' and 'dest' were being used in our headers
but haven't been added to the 17_intro/names.cc test. That's because
they are used by <asm-generic/posix_types.h> and <netinet/tcp.h>
respecitvely on glibc-based systems.

libstdc++-v3/ChangeLog:

	* include/bits/fs_ops.h (create_directory): Use reserved name
	for parameter.
	* include/bits/ranges_algo.h (__contains_subrange_fn):
	Likewise.
	* include/bits/regex_automaton.h (_State_base::_M_print):
	Likewise.
	* include/bits/regex_automaton.tcc(_State_base::_M_print):
	Likewise.
	* include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
	* include/experimental/bits/fs_ops.h (create_directory):
	Likewise.
	* include/std/mutex (timed_mutex::_M_clocklock): Likewise.
	(recursive_timed_mutex:_M_clocklock): Likewise.
	* include/std/tuple (basic_common_reference): Likewise.
	* libsupc++/cxxabi_init_exception.h
	(__cxa_init_primary_exception): Likewise.
	* testsuite/17_intro/names.cc: Add checks.
This commit is contained in:
Jonathan Wakely 2023-02-10 23:16:15 +00:00
parent 55db240d28
commit dc79eba72b
10 changed files with 77 additions and 59 deletions

View file

@ -90,8 +90,8 @@ namespace filesystem
bool create_directory(const path& __p); bool create_directory(const path& __p);
bool create_directory(const path& __p, error_code& __ec) noexcept; bool create_directory(const path& __p, error_code& __ec) noexcept;
bool create_directory(const path& __p, const path& attributes); bool create_directory(const path& __p, const path& __attributes);
bool create_directory(const path& __p, const path& attributes, bool create_directory(const path& __p, const path& __attributes,
error_code& __ec) noexcept; error_code& __ec) noexcept;
void create_directory_symlink(const path& __to, const path& __new_symlink); void create_directory_symlink(const path& __to, const path& __new_symlink);

View file

@ -3490,11 +3490,11 @@ namespace ranges
template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1, template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2, forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
typename _Pred = ranges::equal_to, typename _Pred = ranges::equal_to,
typename Proj1 = identity, typename Proj2 = identity> typename _Proj1 = identity, typename _Proj2 = identity>
requires indirectly_comparable<_Iter1, _Iter2, _Pred, Proj1, Proj2> requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
constexpr bool constexpr bool
operator()(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, operator()(_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2,
_Pred __pred = {}, Proj1 __proj1 = {}, Proj2 __proj2 = {}) const _Pred __pred = {}, _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
{ {
return __first2 == __last2 return __first2 == __last2
|| !ranges::search(__first1, __last1, __first2, __last2, || !ranges::search(__first1, __last1, __first2, __last2,

View file

@ -110,7 +110,7 @@ namespace __detail
#ifdef _GLIBCXX_DEBUG #ifdef _GLIBCXX_DEBUG
std::ostream& std::ostream&
_M_print(std::ostream& ostr) const; _M_print(std::ostream& __ostr) const;
// Prints graphviz dot commands for state. // Prints graphviz dot commands for state.
std::ostream& std::ostream&

View file

@ -36,34 +36,34 @@ namespace __detail
{ {
#ifdef _GLIBCXX_DEBUG #ifdef _GLIBCXX_DEBUG
inline std::ostream& inline std::ostream&
_State_base::_M_print(std::ostream& ostr) const _State_base::_M_print(std::ostream& __ostr) const
{ {
switch (_M_opcode) switch (_M_opcode)
{ {
case _S_opcode_alternative: case _S_opcode_alternative:
case _S_opcode_repeat: case _S_opcode_repeat:
ostr << "alt next=" << _M_next << " alt=" << _M_alt; __ostr << "alt next=" << _M_next << " alt=" << _M_alt;
break; break;
case _S_opcode_subexpr_begin: case _S_opcode_subexpr_begin:
ostr << "subexpr begin next=" << _M_next << " index=" << _M_subexpr; __ostr << "subexpr begin next=" << _M_next << " index=" << _M_subexpr;
break; break;
case _S_opcode_subexpr_end: case _S_opcode_subexpr_end:
ostr << "subexpr end next=" << _M_next << " index=" << _M_subexpr; __ostr << "subexpr end next=" << _M_next << " index=" << _M_subexpr;
break; break;
case _S_opcode_backref: case _S_opcode_backref:
ostr << "backref next=" << _M_next << " index=" << _M_backref_index; __ostr << "backref next=" << _M_next << " index=" << _M_backref_index;
break; break;
case _S_opcode_match: case _S_opcode_match:
ostr << "match next=" << _M_next; __ostr << "match next=" << _M_next;
break; break;
case _S_opcode_accept: case _S_opcode_accept:
ostr << "accept next=" << _M_next; __ostr << "accept next=" << _M_next;
break; break;
default: default:
ostr << "unknown next=" << _M_next; __ostr << "unknown next=" << _M_next;
break; break;
} }
return ostr; return __ostr;
} }
// Prints graphviz dot commands for state. // Prints graphviz dot commands for state.

View file

@ -484,98 +484,98 @@ namespace __detail
template<typename _CharT> template<typename _CharT>
std::ostream& std::ostream&
_Scanner<_CharT>:: _Scanner<_CharT>::
_M_print(std::ostream& ostr) _M_print(std::ostream& __ostr)
{ {
switch (_M_token) switch (_M_token)
{ {
case _S_token_anychar: case _S_token_anychar:
ostr << "any-character\n"; __ostr << "any-character\n";
break; break;
case _S_token_backref: case _S_token_backref:
ostr << "backref\n"; __ostr << "backref\n";
break; break;
case _S_token_bracket_begin: case _S_token_bracket_begin:
ostr << "bracket-begin\n"; __ostr << "bracket-begin\n";
break; break;
case _S_token_bracket_neg_begin: case _S_token_bracket_neg_begin:
ostr << "bracket-neg-begin\n"; __ostr << "bracket-neg-begin\n";
break; break;
case _S_token_bracket_end: case _S_token_bracket_end:
ostr << "bracket-end\n"; __ostr << "bracket-end\n";
break; break;
case _S_token_char_class_name: case _S_token_char_class_name:
ostr << "char-class-name \"" << _M_value << "\"\n"; __ostr << "char-class-name \"" << _M_value << "\"\n";
break; break;
case _S_token_closure0: case _S_token_closure0:
ostr << "closure0\n"; __ostr << "closure0\n";
break; break;
case _S_token_closure1: case _S_token_closure1:
ostr << "closure1\n"; __ostr << "closure1\n";
break; break;
case _S_token_collsymbol: case _S_token_collsymbol:
ostr << "collsymbol \"" << _M_value << "\"\n"; __ostr << "collsymbol \"" << _M_value << "\"\n";
break; break;
case _S_token_comma: case _S_token_comma:
ostr << "comma\n"; __ostr << "comma\n";
break; break;
case _S_token_dup_count: case _S_token_dup_count:
ostr << "dup count: " << _M_value << "\n"; __ostr << "dup count: " << _M_value << "\n";
break; break;
case _S_token_eof: case _S_token_eof:
ostr << "EOF\n"; __ostr << "EOF\n";
break; break;
case _S_token_equiv_class_name: case _S_token_equiv_class_name:
ostr << "equiv-class-name \"" << _M_value << "\"\n"; __ostr << "equiv-class-name \"" << _M_value << "\"\n";
break; break;
case _S_token_interval_begin: case _S_token_interval_begin:
ostr << "interval begin\n"; __ostr << "interval begin\n";
break; break;
case _S_token_interval_end: case _S_token_interval_end:
ostr << "interval end\n"; __ostr << "interval end\n";
break; break;
case _S_token_line_begin: case _S_token_line_begin:
ostr << "line begin\n"; __ostr << "line begin\n";
break; break;
case _S_token_line_end: case _S_token_line_end:
ostr << "line end\n"; __ostr << "line end\n";
break; break;
case _S_token_opt: case _S_token_opt:
ostr << "opt\n"; __ostr << "opt\n";
break; break;
case _S_token_or: case _S_token_or:
ostr << "or\n"; __ostr << "or\n";
break; break;
case _S_token_ord_char: case _S_token_ord_char:
ostr << "ordinary character: \"" << _M_value << "\"\n"; __ostr << "ordinary character: \"" << _M_value << "\"\n";
break; break;
case _S_token_subexpr_begin: case _S_token_subexpr_begin:
ostr << "subexpr begin\n"; __ostr << "subexpr begin\n";
break; break;
case _S_token_subexpr_no_group_begin: case _S_token_subexpr_no_group_begin:
ostr << "no grouping subexpr begin\n"; __ostr << "no grouping subexpr begin\n";
break; break;
case _S_token_subexpr_lookahead_begin: case _S_token_subexpr_lookahead_begin:
ostr << "lookahead subexpr begin\n"; __ostr << "lookahead subexpr begin\n";
break; break;
case _S_token_subexpr_end: case _S_token_subexpr_end:
ostr << "subexpr end\n"; __ostr << "subexpr end\n";
break; break;
case _S_token_unknown: case _S_token_unknown:
ostr << "-- unknown token --\n"; __ostr << "-- unknown token --\n";
break; break;
case _S_token_oct_num: case _S_token_oct_num:
ostr << "oct number " << _M_value << "\n"; __ostr << "oct number " << _M_value << "\n";
break; break;
case _S_token_hex_num: case _S_token_hex_num:
ostr << "hex number " << _M_value << "\n"; __ostr << "hex number " << _M_value << "\n";
break; break;
case _S_token_quoted_class: case _S_token_quoted_class:
ostr << "quoted class " << "\\" << _M_value << "\n"; __ostr << "quoted class " << "\\" << _M_value << "\n";
break; break;
default: default:
_GLIBCXX_DEBUG_ASSERT(false); _GLIBCXX_DEBUG_ASSERT(false);
} }
return ostr; return __ostr;
} }
#endif #endif

View file

@ -98,8 +98,8 @@ inline namespace v1
bool create_directory(const path& __p); bool create_directory(const path& __p);
bool create_directory(const path& __p, error_code& __ec) noexcept; bool create_directory(const path& __p, error_code& __ec) noexcept;
bool create_directory(const path& __p, const path& attributes); bool create_directory(const path& __p, const path& __attributes);
bool create_directory(const path& __p, const path& attributes, bool create_directory(const path& __p, const path& __attributes,
error_code& __ec) noexcept; error_code& __ec) noexcept;
void create_directory_symlink(const path& __to, const path& __new_symlink); void create_directory_symlink(const path& __to, const path& __new_symlink);

View file

@ -294,8 +294,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK #if _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK
bool bool
_M_clocklock(clockid_t clockid, const __gthread_time_t& __ts) _M_clocklock(clockid_t __clockid, const __gthread_time_t& __ts)
{ return !pthread_mutex_clocklock(&_M_mutex, clockid, &__ts); } { return !pthread_mutex_clocklock(&_M_mutex, __clockid, &__ts); }
#endif #endif
}; };
@ -372,8 +372,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#ifdef _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK #ifdef _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK
bool bool
_M_clocklock(clockid_t clockid, const __gthread_time_t& __ts) _M_clocklock(clockid_t __clockid, const __gthread_time_t& __ts)
{ return !pthread_mutex_clocklock(&_M_mutex, clockid, &__ts); } { return !pthread_mutex_clocklock(&_M_mutex, __clockid, &__ts); }
#endif #endif
}; };

View file

@ -2328,10 +2328,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus > 202002L #if __cplusplus > 202002L
template<typename... _TTypes, typename... _UTypes, template<typename... _TTypes, typename... _UTypes,
template<typename> class TQual, template<typename> class UQual> template<typename> class _TQual, template<typename> class _UQual>
requires requires { typename tuple<common_reference_t<TQual<_TTypes>, UQual<_UTypes>>...>; } requires requires { typename tuple<common_reference_t<_TQual<_TTypes>, _UQual<_UTypes>>...>; }
struct basic_common_reference<tuple<_TTypes...>, tuple<_UTypes...>, TQual, UQual> struct basic_common_reference<tuple<_TTypes...>, tuple<_UTypes...>, _TQual, _UQual>
{ using type = tuple<common_reference_t<TQual<_TTypes>, UQual<_UTypes>>...>; }; { using type = tuple<common_reference_t<_TQual<_TTypes>, _UQual<_UTypes>>...>; };
template<typename... _TTypes, typename... _UTypes> template<typename... _TTypes, typename... _UTypes>
requires requires { typename tuple<common_type_t<_TTypes, _UTypes>...>; } requires requires { typename tuple<common_type_t<_TTypes, _UTypes>...>; }

View file

@ -67,8 +67,9 @@ namespace __cxxabiv1
// Initialize exception (this is a GNU extension) // Initialize exception (this is a GNU extension)
__cxa_refcounted_exception* __cxa_refcounted_exception*
__cxa_init_primary_exception(void *object, std::type_info *tinfo, __cxa_init_primary_exception(void *__object, std::type_info *__tinfo,
void (_GLIBCXX_CDTOR_CALLABI *dest) (void *)) _GLIBCXX_NOTHROW; void (_GLIBCXX_CDTOR_CALLABI *__dest) (void *))
_GLIBCXX_NOTHROW;
} }
} // namespace __cxxabiv1 } // namespace __cxxabiv1

View file

@ -30,7 +30,7 @@
#define F ( #define F (
#define G ( #define G (
#define H ( #define H (
#define I ( // <complex.h> defines I
#define J ( #define J (
#define K ( #define K (
#define L ( #define L (
@ -108,9 +108,18 @@
#endif #endif
#define z ( #define z (
#define attributes (
#define bin_op (
#define clockid (
#define func ( #define func (
#define tmp ( #define max_val (
#define min_val (
#define object (
#define ostr (
#define policy (
#define sz ( #define sz (
#define tinfo (
#define tmp (
#define token ( #define token (
#define value_t ( #define value_t (
@ -156,6 +165,7 @@
#define Alloc Alloc is not a reserved name #define Alloc Alloc is not a reserved name
#define BinaryFunction1 BinaryFunction1 is not a reserved name #define BinaryFunction1 BinaryFunction1 is not a reserved name
#define BinaryFunction2 BinaryFunction2 is not a reserved name #define BinaryFunction2 BinaryFunction2 is not a reserved name
#define BinaryOperation BinaryOperation is not a reserved name
#define Char Char is not a reserved name #define Char Char is not a reserved name
#define CharT CharT is not a reserved name #define CharT CharT is not a reserved name
#define Cmp Cmp is not a reserved name #define Cmp Cmp is not a reserved name
@ -179,6 +189,7 @@
#define H1 H1 is not a reserved name #define H1 H1 is not a reserved name
#define H2 H2 is not a reserved name #define H2 H2 is not a reserved name
#define Head Head is not a reserved name #define Head Head is not a reserved name
#define IsVector IsVector is not a reserved name
#define It It is not a reserved name #define It It is not a reserved name
#define Iter Iter is not a reserved name #define Iter Iter is not a reserved name
#define Iterator Iterator is not a reserved name #define Iterator Iterator is not a reserved name
@ -191,16 +202,22 @@
#define Pointer Pointer is not a reserved name #define Pointer Pointer is not a reserved name
#define Policy Policy is not a reserved name #define Policy Policy is not a reserved name
#define Pred Pred is not a reserved name #define Pred Pred is not a reserved name
#define Proj Proj is not a reserved name
#define Proj1 Proj1 is not a reserved name
#define Proj2 Proj2 is not a reserved name
#define Ptr Ptr is not a reserved name #define Ptr Ptr is not a reserved name
#define Reference Reference is not a reserved name #define Reference Reference is not a reserved name
#define Seq Seq is not a reserved name #define Seq Seq is not a reserved name
#define Seq_RAIter Seq_RAIter is not a reserved name #define Seq_RAIter Seq_RAIter is not a reserved name
#define Series Series is not a reserved name #define Series Series is not a reserved name
#define Set Set is not a reserved name #define Set Set is not a reserved name
#define Size Size is not a reserved name
#define String String is not a reserved name #define String String is not a reserved name
#define Tp Tp is not a reserved name #define Tp Tp is not a reserved name
#define TQual TQual is not a reserved name
#define Traits Traits is not a reserved name #define Traits Traits is not a reserved name
#define Type Type is not a reserved name #define Type Type is not a reserved name
#define UQual UQual is not a reserved name
#define Value Value is not a reserved name #define Value Value is not a reserved name
#define ValueT ValueT is not a reserved name #define ValueT ValueT is not a reserved name
#define ValueType ValueType is not a reserved name #define ValueType ValueType is not a reserved name