[gcc r13-8372] libstdc++: Fix access error in __gnu_test::uneq_allocator

Jonathan Wakely redi@gcc.gnu.org
Fri Mar 1 10:52:51 GMT 2024


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

commit r13-8372-gcf8faabcac2adee1fd59a5baf7a36d4334a74a93
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 23 14:34:59 2023 +0000

    libstdc++: Fix access error in __gnu_test::uneq_allocator
    
    The operator== function is only a friend of the LHS argument, so cannot
    access the private member of the RHS argument. Use the public accessor
    instead.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
            equality operator for heterogeneous comparisons.
    
    (cherry picked from commit 0585daf7de0673ade9feca1be66a68178786b48d)

Diff:
---
 libstdc++-v3/testsuite/util/testsuite_allocator.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index 9108ee40821..24b86e82516 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -418,7 +418,7 @@ namespace __gnu_test
 	operator==(const uneq_allocator& a,
 		   const uneq_allocator<Tp1,
 		   typename AllocTraits::template rebind<Tp1>::other>& b)
-	{ return a.personality == b.personality; }
+	{ return a.personality == b.get_personality(); }
 
       template<typename Tp1>
 	friend inline bool


More information about the Libstdc++-cvs mailing list