public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [committed] libstdc++: Fix uses of non-reserved names in headers
@ 2023-02-16 13:23 Maciej Cencora
  0 siblings, 0 replies; 6+ messages in thread
From: Maciej Cencora @ 2023-02-16 13:23 UTC (permalink / raw)
  To: gcc-patches

Hi,

instead of uglyfing all the libstdc++ code wouldn't it be simpler to
just ignore all non-reserved macro expansions (+ some special ones
like assert) inside system headers on compiler level?

Regards,
Maciej

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [committed] libstdc++: Fix uses of non-reserved names in headers
  2023-02-16 11:45   ` Jakub Jelinek
@ 2023-02-16 12:02     ` Jonathan Wakely
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Wakely @ 2023-02-16 12:02 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: libstdc++, gcc-patches

On Thu, 16 Feb 2023 at 11:45, Jakub Jelinek <jakub@redhat.com> wrote:
>
> On Thu, Feb 16, 2023 at 11:47:54AM +0100, Jakub Jelinek via Gcc-patches wrote:
> > On Thu, Feb 16, 2023 at 10:30:30AM +0000, Jonathan Wakely via Gcc-patches wrote:
> > > Tested powerpc64le-linux. Pushed to trunk.
> > >
> > > These should be backported too.
> > >
> > > -- >8 --
> > >
> > > 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.
> >
> > So, can't we for such problematic names add hacks, like some directory
> > which the test adds as -isystem before the standard ones and contains
>
> Or do it the way you just did for PSTL, by including all the non-libstdc++
> headers used in libstdc++ headers before defining all the macros for the
> non-reserved names, hopefully the system headers use include guards and
> won't be included again.


Yes, I tried that last week, and it didn't work. There was a
diagnostic about __GLIBCXX__ being redefined, because of the {
dg-add-options no_pch } directive.

I can try again, or we can just use the existing solution of doing
#undef val #undef dest for glibc and/or linux targets, so that we
still test those names on other targets.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [committed] libstdc++: Fix uses of non-reserved names in headers
  2023-02-16 10:47 ` Jakub Jelinek
  2023-02-16 11:45   ` Jakub Jelinek
@ 2023-02-16 12:00   ` Jonathan Wakely
  1 sibling, 0 replies; 6+ messages in thread
From: Jonathan Wakely @ 2023-02-16 12:00 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: libstdc++, gcc-patches

On Thu, 16 Feb 2023 at 10:48, Jakub Jelinek <jakub@redhat.com> wrote:
>
> On Thu, Feb 16, 2023 at 10:30:30AM +0000, Jonathan Wakely via Gcc-patches wrote:
> > Tested powerpc64le-linux. Pushed to trunk.
> >
> > These should be backported too.
> >
> > -- >8 --
> >
> > 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.
>
> So, can't we for such problematic names add hacks, like some directory
> which the test adds as -isystem before the standard ones and contains
> some header wrappers which temporarily
> #undef val
> #undef dest
> (or whatever other name), then
> #include_next ...
> and then define them again?
> Doesn't need to be for all targets of course, but just something to cover
> at least the most common ones.
>
> Or perhaps even do it differently, add 2 headers, one which defines
> all those #define whatever (, one that #undef whatever them all,
> and add wrappers in a -isystem directory for all non-gcc owned headers
> used by the libstdc++ headers, which would include this #undef header
> first and #define at the end.  That way we wouldn't test non-reserved
> names in say libc headers, just in libstdc++ headers.

We could, but it seems like a lot of work just for "val" and "dest",
when there are much simpler solutions :-)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [committed] libstdc++: Fix uses of non-reserved names in headers
  2023-02-16 10:47 ` Jakub Jelinek
@ 2023-02-16 11:45   ` Jakub Jelinek
  2023-02-16 12:02     ` Jonathan Wakely
  2023-02-16 12:00   ` Jonathan Wakely
  1 sibling, 1 reply; 6+ messages in thread
From: Jakub Jelinek @ 2023-02-16 11:45 UTC (permalink / raw)
  To: Jonathan Wakely, libstdc++, gcc-patches

On Thu, Feb 16, 2023 at 11:47:54AM +0100, Jakub Jelinek via Gcc-patches wrote:
> On Thu, Feb 16, 2023 at 10:30:30AM +0000, Jonathan Wakely via Gcc-patches wrote:
> > Tested powerpc64le-linux. Pushed to trunk.
> > 
> > These should be backported too.
> > 
> > -- >8 --
> > 
> > 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.
> 
> So, can't we for such problematic names add hacks, like some directory
> which the test adds as -isystem before the standard ones and contains

Or do it the way you just did for PSTL, by including all the non-libstdc++
headers used in libstdc++ headers before defining all the macros for the
non-reserved names, hopefully the system headers use include guards and
won't be included again.

	Jakub


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [committed] libstdc++: Fix uses of non-reserved names in headers
  2023-02-16 10:30 Jonathan Wakely
@ 2023-02-16 10:47 ` Jakub Jelinek
  2023-02-16 11:45   ` Jakub Jelinek
  2023-02-16 12:00   ` Jonathan Wakely
  0 siblings, 2 replies; 6+ messages in thread
From: Jakub Jelinek @ 2023-02-16 10:47 UTC (permalink / raw)
  To: Jonathan Wakely; +Cc: libstdc++, gcc-patches

On Thu, Feb 16, 2023 at 10:30:30AM +0000, Jonathan Wakely via Gcc-patches wrote:
> Tested powerpc64le-linux. Pushed to trunk.
> 
> These should be backported too.
> 
> -- >8 --
> 
> 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.

So, can't we for such problematic names add hacks, like some directory
which the test adds as -isystem before the standard ones and contains
some header wrappers which temporarily
#undef val
#undef dest
(or whatever other name), then
#include_next ...
and then define them again?
Doesn't need to be for all targets of course, but just something to cover
at least the most common ones.

Or perhaps even do it differently, add 2 headers, one which defines
all those #define whatever (, one that #undef whatever them all,
and add wrappers in a -isystem directory for all non-gcc owned headers
used by the libstdc++ headers, which would include this #undef header
first and #define at the end.  That way we wouldn't test non-reserved
names in say libc headers, just in libstdc++ headers.

What both of these break though is if libstdc++ headers try to use
__has_include etc. on them, because the added wrapper will mean they will
show as existing.

	Jakub


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [committed] libstdc++: Fix uses of non-reserved names in headers
@ 2023-02-16 10:30 Jonathan Wakely
  2023-02-16 10:47 ` Jakub Jelinek
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Wakely @ 2023-02-16 10:30 UTC (permalink / raw)
  To: libstdc++, gcc-patches

Tested powerpc64le-linux. Pushed to trunk.

These should be backported too.

-- >8 --

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            |  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 +++++++++----------
 .../include/experimental/bits/fs_ops.h        |  4 +-
 libstdc++-v3/include/std/mutex                |  8 +--
 libstdc++-v3/include/std/tuple                |  8 +--
 .../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
-- 
2.39.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-02-16 13:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-16 13:23 [committed] libstdc++: Fix uses of non-reserved names in headers Maciej Cencora
  -- strict thread matches above, loose matches on Subject: below --
2023-02-16 10:30 Jonathan Wakely
2023-02-16 10:47 ` Jakub Jelinek
2023-02-16 11:45   ` Jakub Jelinek
2023-02-16 12:02     ` Jonathan Wakely
2023-02-16 12:00   ` 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).