libstdc++: Fix uses of non-reserved names in headers
authorJonathan Wakely <jwakely@redhat.com>
Fri, 10 Feb 2023 23:16:15 +0000 (23:16 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 16 Feb 2023 10:24:45 +0000 (10:24 +0000)
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.

libstdc++-v3/include/bits/fs_ops.h
libstdc++-v3/include/bits/ranges_algo.h
libstdc++-v3/include/bits/regex_automaton.h
libstdc++-v3/include/bits/regex_automaton.tcc
libstdc++-v3/include/bits/regex_scanner.tcc
libstdc++-v3/include/experimental/bits/fs_ops.h
libstdc++-v3/include/std/mutex
libstdc++-v3/include/std/tuple
libstdc++-v3/libsupc++/cxxabi_init_exception.h
libstdc++-v3/testsuite/17_intro/names.cc

index 74b8ad5..e0b87c9 100644 (file)
@@ -90,8 +90,8 @@ namespace filesystem
   bool create_directory(const path& __p);
   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;
 
   void create_directory_symlink(const path& __to, const path& __new_symlink);
index 1685e1d..5d039bd 100644 (file)
@@ -3490,11 +3490,11 @@ namespace ranges
     template<forward_iterator _Iter1, sentinel_for<_Iter1> _Sent1,
             forward_iterator _Iter2, sentinel_for<_Iter2> _Sent2,
             typename _Pred = ranges::equal_to,
-            typename Proj1 = identity, typename Proj2 = identity>
-      requires indirectly_comparable<_Iter1, _Iter2, _Pred, Proj1, Proj2>
+            typename _Proj1 = identity, typename _Proj2 = identity>
+      requires indirectly_comparable<_Iter1, _Iter2, _Pred, _Proj1, _Proj2>
       constexpr bool
       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
          || !ranges::search(__first1, __last1, __first2, __last2,
index c2e4b51..ef336d5 100644 (file)
@@ -110,7 +110,7 @@ namespace __detail
 
 #ifdef _GLIBCXX_DEBUG
     std::ostream&
-    _M_print(std::ostream& ostr) const;
+    _M_print(std::ostream& __ostr) const;
 
     // Prints graphviz dot commands for state.
     std::ostream&
index 546605d..f25f7b3 100644 (file)
@@ -36,34 +36,34 @@ namespace __detail
 {
 #ifdef _GLIBCXX_DEBUG
   inline std::ostream&
-  _State_base::_M_print(std::ostream& ostr) const
+  _State_base::_M_print(std::ostream& __ostr) const
   {
     switch (_M_opcode)
     {
       case _S_opcode_alternative:
       case _S_opcode_repeat:
-       ostr << "alt next=" << _M_next << " alt=" << _M_alt;
+       __ostr << "alt next=" << _M_next << " alt=" << _M_alt;
        break;
       case _S_opcode_subexpr_begin:
-       ostr << "subexpr begin next=" << _M_next << " index=" << _M_subexpr;
+       __ostr << "subexpr begin next=" << _M_next << " index=" << _M_subexpr;
        break;
       case _S_opcode_subexpr_end:
-       ostr << "subexpr end next=" << _M_next << " index=" << _M_subexpr;
+       __ostr << "subexpr end next=" << _M_next << " index=" << _M_subexpr;
        break;
       case _S_opcode_backref:
-       ostr << "backref next=" << _M_next << " index=" << _M_backref_index;
+       __ostr << "backref next=" << _M_next << " index=" << _M_backref_index;
        break;
       case _S_opcode_match:
-       ostr << "match next=" << _M_next;
+       __ostr << "match next=" << _M_next;
        break;
       case _S_opcode_accept:
-       ostr << "accept next=" << _M_next;
+       __ostr << "accept next=" << _M_next;
        break;
       default:
-       ostr << "unknown next=" << _M_next;
+       __ostr << "unknown next=" << _M_next;
        break;
     }
-    return ostr;
+    return __ostr;
   }
 
   // Prints graphviz dot commands for state.
index d3d95ac..1376178 100644 (file)
@@ -484,98 +484,98 @@ namespace __detail
   template<typename _CharT>
     std::ostream&
     _Scanner<_CharT>::
-    _M_print(std::ostream& ostr)
+    _M_print(std::ostream& __ostr)
     {
       switch (_M_token)
       {
       case _S_token_anychar:
-       ostr << "any-character\n";
+       __ostr << "any-character\n";
        break;
       case _S_token_backref:
-       ostr << "backref\n";
+       __ostr << "backref\n";
        break;
       case _S_token_bracket_begin:
-       ostr << "bracket-begin\n";
+       __ostr << "bracket-begin\n";
        break;
       case _S_token_bracket_neg_begin:
-       ostr << "bracket-neg-begin\n";
+       __ostr << "bracket-neg-begin\n";
        break;
       case _S_token_bracket_end:
-       ostr << "bracket-end\n";
+       __ostr << "bracket-end\n";
        break;
       case _S_token_char_class_name:
-       ostr << "char-class-name \"" << _M_value << "\"\n";
+       __ostr << "char-class-name \"" << _M_value << "\"\n";
        break;
       case _S_token_closure0:
-       ostr << "closure0\n";
+       __ostr << "closure0\n";
        break;
       case _S_token_closure1:
-       ostr << "closure1\n";
+       __ostr << "closure1\n";
        break;
       case _S_token_collsymbol:
-       ostr << "collsymbol \"" << _M_value << "\"\n";
+       __ostr << "collsymbol \"" << _M_value << "\"\n";
        break;
       case _S_token_comma:
-       ostr << "comma\n";
+       __ostr << "comma\n";
        break;
       case _S_token_dup_count:
-       ostr << "dup count: " << _M_value << "\n";
+       __ostr << "dup count: " << _M_value << "\n";
        break;
       case _S_token_eof:
-       ostr << "EOF\n";
+       __ostr << "EOF\n";
        break;
       case _S_token_equiv_class_name:
-       ostr << "equiv-class-name \"" << _M_value << "\"\n";
+       __ostr << "equiv-class-name \"" << _M_value << "\"\n";
        break;
       case _S_token_interval_begin:
-       ostr << "interval begin\n";
+       __ostr << "interval begin\n";
        break;
       case _S_token_interval_end:
-       ostr << "interval end\n";
+       __ostr << "interval end\n";
        break;
       case _S_token_line_begin:
-       ostr << "line begin\n";
+       __ostr << "line begin\n";
        break;
       case _S_token_line_end:
-       ostr << "line end\n";
+       __ostr << "line end\n";
        break;
       case _S_token_opt:
-       ostr << "opt\n";
+       __ostr << "opt\n";
        break;
       case _S_token_or:
-       ostr << "or\n";
+       __ostr << "or\n";
        break;
       case _S_token_ord_char:
-       ostr << "ordinary character: \"" << _M_value << "\"\n";
+       __ostr << "ordinary character: \"" << _M_value << "\"\n";
        break;
       case _S_token_subexpr_begin:
-       ostr << "subexpr begin\n";
+       __ostr << "subexpr begin\n";
        break;
       case _S_token_subexpr_no_group_begin:
-       ostr << "no grouping subexpr begin\n";
+       __ostr << "no grouping subexpr begin\n";
        break;
       case _S_token_subexpr_lookahead_begin:
-       ostr << "lookahead subexpr begin\n";
+       __ostr << "lookahead subexpr begin\n";
        break;
       case _S_token_subexpr_end:
-       ostr << "subexpr end\n";
+       __ostr << "subexpr end\n";
        break;
       case _S_token_unknown:
-       ostr << "-- unknown token --\n";
+       __ostr << "-- unknown token --\n";
        break;
       case _S_token_oct_num:
-       ostr << "oct number " << _M_value << "\n";
+       __ostr << "oct number " << _M_value << "\n";
        break;
       case _S_token_hex_num:
-       ostr << "hex number " << _M_value << "\n";
+       __ostr << "hex number " << _M_value << "\n";
        break;
       case _S_token_quoted_class:
-       ostr << "quoted class " << "\\" << _M_value << "\n";
+       __ostr << "quoted class " << "\\" << _M_value << "\n";
        break;
       default:
        _GLIBCXX_DEBUG_ASSERT(false);
       }
-      return ostr;
+      return __ostr;
     }
 #endif
 
index b2334a8..b3303af 100644 (file)
@@ -98,8 +98,8 @@ inline namespace v1
   bool create_directory(const path& __p);
   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;
 
   void create_directory_symlink(const path& __to, const path& __new_symlink);
index 9451c42..7942038 100644 (file)
@@ -294,8 +294,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK
       bool
-      _M_clocklock(clockid_t clockid, const __gthread_time_t& __ts)
-      { return !pthread_mutex_clocklock(&_M_mutex, clockid, &__ts); }
+      _M_clocklock(clockid_t __clockid, const __gthread_time_t& __ts)
+      { return !pthread_mutex_clocklock(&_M_mutex, __clockid, &__ts); }
 #endif
   };
 
@@ -372,8 +372,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #ifdef _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK
       bool
-      _M_clocklock(clockid_t clockid, const __gthread_time_t& __ts)
-      { return !pthread_mutex_clocklock(&_M_mutex, clockid, &__ts); }
+      _M_clocklock(clockid_t __clockid, const __gthread_time_t& __ts)
+      { return !pthread_mutex_clocklock(&_M_mutex, __clockid, &__ts); }
 #endif
   };
 
index c773b3a..0e47abe 100644 (file)
@@ -2328,10 +2328,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if __cplusplus > 202002L
   template<typename... _TTypes, typename... _UTypes,
-          template<typename> class TQual, template<typename> class UQual>
-    requires requires { typename tuple<common_reference_t<TQual<_TTypes>, UQual<_UTypes>>...>; }
-  struct basic_common_reference<tuple<_TTypes...>, tuple<_UTypes...>, TQual, UQual>
-  { using type = tuple<common_reference_t<TQual<_TTypes>, UQual<_UTypes>>...>; };
+          template<typename> class _TQual, template<typename> class _UQual>
+    requires requires { typename tuple<common_reference_t<_TQual<_TTypes>, _UQual<_UTypes>>...>; }
+  struct basic_common_reference<tuple<_TTypes...>, tuple<_UTypes...>, _TQual, _UQual>
+  { using type = tuple<common_reference_t<_TQual<_TTypes>, _UQual<_UTypes>>...>; };
 
   template<typename... _TTypes, typename... _UTypes>
     requires requires { typename tuple<common_type_t<_TTypes, _UTypes>...>; }
index a761d5f..d9b0e1b 100644 (file)
@@ -67,8 +67,9 @@ namespace __cxxabiv1
 
       // Initialize exception (this is a GNU extension)
       __cxa_refcounted_exception*
-      __cxa_init_primary_exception(void *object, std::type_info *tinfo,
-                void (_GLIBCXX_CDTOR_CALLABI *dest) (void *)) _GLIBCXX_NOTHROW;
+      __cxa_init_primary_exception(void *__object, std::type_info *__tinfo,
+                void (_GLIBCXX_CDTOR_CALLABI *__dest) (void *))
+       _GLIBCXX_NOTHROW;
 
     }
 } // namespace __cxxabiv1
index d3e0db9..afa7491 100644 (file)
@@ -30,7 +30,7 @@
 #define F (
 #define G (
 #define H (
-#define I (
+// <complex.h> defines I
 #define J (
 #define K (
 #define L (
 #endif
 #define z (
 
+#define attributes (
+#define bin_op (
+#define clockid (
 #define func (
-#define tmp (
+#define max_val (
+#define min_val (
+#define object (
+#define ostr (
+#define policy (
 #define sz (
+#define tinfo (
+#define tmp (
 #define token (
 #define value_t (
 
 #define Alloc                  Alloc is not a reserved name
 #define BinaryFunction1                BinaryFunction1 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 CharT                  CharT is not a reserved name
 #define Cmp                    Cmp is not a reserved name
 #define H1                     H1 is not a reserved name
 #define H2                     H2 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 Iter                   Iter is not a reserved name
 #define Iterator               Iterator is not a reserved name
 #define Pointer                        Pointer is not a reserved name
 #define Policy                 Policy 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 Reference              Reference is not a reserved name
 #define Seq                    Seq is not a reserved name
 #define Seq_RAIter             Seq_RAIter is not a reserved name
 #define Series                 Series 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 Tp                     Tp is not a reserved name
+#define TQual                  TQual is not a reserved name
 #define Traits                 Traits 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 ValueT                 ValueT is not a reserved name
 #define ValueType              ValueType is not a reserved name