[PATH][_GLIBCXX_DEBUG] Fix unordered container merge

Jonathan Wakely jwakely@redhat.com
Tue Nov 9 16:25:02 GMT 2021


On Mon, 8 Nov 2021 at 21:36, François Dumont <frs.dumont@gmail.com> wrote:

> Yet another version this time with only 1 guard implementation. The
> predicate to invalidate the safe iterators has been externalized.
>
> Ok to commit ?
>

I like this version a lot - thanks for persisting with it.

OK to commit, thanks.


As an aside ...

--- a/libstdc++-v3/testsuite/util/testsuite_abi.h
+++ b/libstdc++-v3/testsuite/util/testsuite_abi.h
@@ -24,7 +24,11 @@
 #include <locale>
 #if __cplusplus >= 201103L
 # include <unordered_map>
+# ifdef _GLIBCXX_DEBUG
+namespace unord = std::_GLIBCXX_STD_C;
+# else
 namespace unord = std;
+# endif
 #else
 # include <tr1/unordered_map>
 namespace unord = std::tr1;


Several times I've been annoyed by the fact that we don't have a way to
refer to std::_GLIBCXX_STD_C::vector etc. that is always valid, in normal
mode and debug mode.

Maybe we should add:

namespace std { namespace _GLIBCXX_STD_C = ::std; }

That way we can refer to std::_GLIBCXX_STD_C::foo in normal mode, and it
will mean the same thing as in debug mode. So we don't need to use #if
conditions like this.


More information about the Gcc-patches mailing list