aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-10-10 21:22:12 +0100
committerJonathan Wakely <jwakely@redhat.com>2020-10-10 21:22:12 +0100
commit2137aa92412da363d52ef699987441be28b239d0 (patch)
treea51c2d65dfeba5ee9c15b0dd3a5f3242a57b7493
parent988f0466e80a6e4cc758f4df387b6c021b1cb078 (diff)
downloadgcc-2137aa92412da363d52ef699987441be28b239d0.zip
gcc-2137aa92412da363d52ef699987441be28b239d0.tar.gz
gcc-2137aa92412da363d52ef699987441be28b239d0.tar.bz2
libstdc++: Replace use of reserved name that clashes [PR 97362]
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.
-rw-r--r--libstdc++-v3/doc/html/manual/source_code_style.html1
-rw-r--r--libstdc++-v3/doc/xml/manual/appendix_contributing.xml6
-rw-r--r--libstdc++-v3/include/debug/functions.h6
-rw-r--r--libstdc++-v3/testsuite/17_intro/badnames.cc1
4 files changed, 9 insertions, 5 deletions
diff --git a/libstdc++-v3/doc/html/manual/source_code_style.html b/libstdc++-v3/doc/html/manual/source_code_style.html
index 680e9e7..669f16d 100644
--- a/libstdc++-v3/doc/html/manual/source_code_style.html
+++ b/libstdc++-v3/doc/html/manual/source_code_style.html
@@ -32,6 +32,7 @@
<br />
      MS adds:<br />
      _T<br />
+ __deref<br />
<br />
      BSD adds:<br />
      __used<br />
diff --git a/libstdc++-v3/doc/xml/manual/appendix_contributing.xml b/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
index 0099112..4380cbb 100644
--- a/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
+++ b/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
@@ -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
diff --git a/libstdc++-v3/include/debug/functions.h b/libstdc++-v3/include/debug/functions.h
index aaccc8d..942d35f 100644
--- a/libstdc++-v3/include/debug/functions.h
+++ b/libstdc++-v3/include/debug/functions.h
@@ -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)
diff --git a/libstdc++-v3/testsuite/17_intro/badnames.cc b/libstdc++-v3/testsuite/17_intro/badnames.cc
index c69b8c4..a6b98db 100644
--- a/libstdc++-v3/testsuite/17_intro/badnames.cc
+++ b/libstdc++-v3/testsuite/17_intro/badnames.cc
@@ -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