libstdc++: Replace use of reserved name that clashes [PR 97362]
authorJonathan Wakely <jwakely@redhat.com>
Sat, 10 Oct 2020 20:22:12 +0000 (21:22 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Sat, 10 Oct 2020 20:22:12 +0000 (21:22 +0100)
The name __deref is defined as a macro by Windows headers.

This renames the __deref() helper function to __ref. It doesn't actually
dereference an iterator. it just has the same type as the iterator's
reference type.

libstdc++-v3/ChangeLog:

PR libstdc++/97362
* doc/html/manual/source_code_style.html: Regenerate.
* doc/xml/manual/appendix_contributing.xml: Add __deref to
BADNAMES.
* include/debug/functions.h (_Irreflexive_checker::__deref):
Rename to __ref.
* testsuite/17_intro/badnames.cc: Check __deref.

libstdc++-v3/doc/html/manual/source_code_style.html
libstdc++-v3/doc/xml/manual/appendix_contributing.xml
libstdc++-v3/include/debug/functions.h
libstdc++-v3/testsuite/17_intro/badnames.cc

index 680e9e7..669f16d 100644 (file)
@@ -32,6 +32,7 @@
 <br />
       MS adds:<br />
       _T<br />
+                       __deref<br />
 <br />
       BSD adds:<br />
       __used<br />
index 0099112..4380cbb 100644 (file)
@@ -412,8 +412,9 @@ indicate a place that may require attention for multi-thread safety.
   
   <para>
   </para>
-  <section xml:id="coding_style.bad_identifiers"><info><title>Bad Identifiers</title></info>
-    
+
+  <section xml:id="coding_style.bad_identifiers"><info><title>Bad Identifiers</title></info> <!-- BADNAMES -->
+
     <para>
       Identifiers that conflict and should be avoided.
     </para>
@@ -445,6 +446,7 @@ indicate a place that may require attention for multi-thread safety.
 
       MS adds:
       _T
+                       __deref
 
       BSD adds:
       __used
index aaccc8d..942d35f 100644 (file)
@@ -421,10 +421,10 @@ namespace __gnu_debug
   {
     template<typename _It>
       static typename std::iterator_traits<_It>::reference
-      __deref();
+      __ref();
 
     template<typename _It,
-            typename = decltype(__deref<_It>() < __deref<_It>())>
+            typename = decltype(__ref<_It>() < __ref<_It>())>
       _GLIBCXX20_CONSTEXPR
       static bool
       _S_is_valid(_It __it)
@@ -438,7 +438,7 @@ namespace __gnu_debug
       { return true; }
 
     template<typename _It, typename _Pred, typename
-       = decltype(std::declval<_Pred>()(__deref<_It>(), __deref<_It>()))>
+       = decltype(std::declval<_Pred>()(__ref<_It>(), __ref<_It>()))>
       _GLIBCXX20_CONSTEXPR
       static bool
       _S_is_valid_pred(_It __it, _Pred __pred)
index c69b8c4..a6b98db 100644 (file)
@@ -62,6 +62,7 @@
 
 // MS adds:
 #define _T             _T is a BADNAME
+#define __deref                __deref is a BADNAME
 
 // BSD adds:
 #define __used         __used is a BADNAME