public inbox for libstdc++-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-6075] libstdc++: Fix uses of non-reserved names in headers
@ 2023-02-16 10:30 Jonathan Wakely
  0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2023-02-16 10:30 UTC (permalink / raw)
  To: gcc-cvs, libstdc++-cvs

https://gcc.gnu.org/g:dc79eba72b4d16180e500eba336f511a485a8496

commit r13-6075-gdc79eba72b4d16180e500eba336f511a485a8496
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Feb 10 23:16:15 2023 +0000

    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.

Diff:
---
 libstdc++-v3/include/bits/fs_ops.h              |  4 +-
 libstdc++-v3/include/bits/ranges_algo.h         |  6 +--
 libstdc++-v3/include/bits/regex_automaton.h     |  2 +-
 libstdc++-v3/include/bits/regex_automaton.tcc   | 18 ++++----
 libstdc++-v3/include/bits/regex_scanner.tcc     | 60 ++++++++++++-------------
 libstdc++-v3/include/experimental/bits/fs_ops.h |  4 +-
 libstdc++-v3/include/std/mutex                  |  8 ++--
 libstdc++-v3/include/std/tuple                  |  8 ++--
 libstdc++-v3/libsupc++/cxxabi_init_exception.h  |  5 ++-
 libstdc++-v3/testsuite/17_intro/names.cc        | 21 ++++++++-
 10 files changed, 77 insertions(+), 59 deletions(-)

diff --git a/libstdc++-v3/include/bits/fs_ops.h b/libstdc++-v3/include/bits/fs_ops.h
index 74b8ad50210..e0b87c9fa00 100644
--- a/libstdc++-v3/include/bits/fs_ops.h
+++ b/libstdc++-v3/include/bits/fs_ops.h
@@ -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);
diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index 1685e1d85bb..5d039bd1cd4 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -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,
diff --git a/libstdc++-v3/include/bits/regex_automaton.h b/libstdc++-v3/include/bits/regex_automaton.h
index c2e4b512ed5..ef336d5883b 100644
--- a/libstdc++-v3/include/bits/regex_automaton.h
+++ b/libstdc++-v3/include/bits/regex_automaton.h
@@ -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&
diff --git a/libstdc++-v3/include/bits/regex_automaton.tcc b/libstdc++-v3/include/bits/regex_automaton.tcc
index 546605da31f..f25f7b33263 100644
--- a/libstdc++-v3/include/bits/regex_automaton.tcc
+++ b/libstdc++-v3/include/bits/regex_automaton.tcc
@@ -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.
diff --git a/libstdc++-v3/include/bits/regex_scanner.tcc b/libstdc++-v3/include/bits/regex_scanner.tcc
index d3d95acefdc..137617845de 100644
--- a/libstdc++-v3/include/bits/regex_scanner.tcc
+++ b/libstdc++-v3/include/bits/regex_scanner.tcc
@@ -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
 
diff --git a/libstdc++-v3/include/experimental/bits/fs_ops.h b/libstdc++-v3/include/experimental/bits/fs_ops.h
index b2334a8aadf..b3303afdb20 100644
--- a/libstdc++-v3/include/experimental/bits/fs_ops.h
+++ b/libstdc++-v3/include/experimental/bits/fs_ops.h
@@ -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);
diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index 9451c4263c1..79420388abc 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
@@ -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
   };
 
diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index c773b3a348b..0e47abed573 100644
--- a/libstdc++-v3/include/std/tuple
+++ b/libstdc++-v3/include/std/tuple
@@ -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>...>; }
diff --git a/libstdc++-v3/libsupc++/cxxabi_init_exception.h b/libstdc++-v3/libsupc++/cxxabi_init_exception.h
index a761d5fd57f..d9b0e1bd421 100644
--- a/libstdc++-v3/libsupc++/cxxabi_init_exception.h
+++ b/libstdc++-v3/libsupc++/cxxabi_init_exception.h
@@ -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
diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc
index d3e0db9bab6..afa749128f5 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -30,7 +30,7 @@
 #define F (
 #define G (
 #define H (
-#define I (
+// <complex.h> defines I
 #define J (
 #define K (
 #define L (
@@ -108,9 +108,18 @@
 #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 (
 
@@ -156,6 +165,7 @@
 #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
@@ -179,6 +189,7 @@
 #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
@@ -191,16 +202,22 @@
 #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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-16 10:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-16 10:30 [gcc r13-6075] libstdc++: Fix uses of non-reserved names in headers Jonathan Wakely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).