Re: [PATCH] [11/12/13/14 Regression] ABI break in _Hash_node_value_base since GCC 11 [PR 111050]

2023-09-26 Thread François Dumont
Still no chance to get feedback from TC ? Maybe I can commit the below then ? AFAICS on gcc mailing list several gcc releases were done recently, too late. On 14/09/2023 06:46, François Dumont wrote: Author: TC Date:   Wed Sep 6 19:31:55 2023 +0200     libstdc++: Force

Re: [PATCH] _Hashtable fancy pointer support

2024-06-27 Thread François Dumont
Thanks for the link, based on it I removed some of the nullptr usages keeping only assignments. François On 26/06/2024 23:41, Jonathan Wakely wrote: On Wed, 26 Jun 2024 at 21:39, François Dumont wrote: Hi Here is my proposal to add support for fancy allocator pointer. The only place where

Re: [PATCH] _Hashtable fancy pointer support

2024-06-29 Thread François Dumont
On 27/06/2024 22:30, Jonathan Wakely wrote: On Thu, 27 Jun 2024 at 20:25, François Dumont wrote: Thanks for the link, based on it I removed some of the nullptr usages keeping only assignments. That's not necessary. A nullable pointer type is equality comparable with nullptr_t, and nu

Re: Fix gnu versioned namespace mode 00/03

2024-05-15 Thread François Dumont
On 13/05/2024 10:34, Jonathan Wakely wrote: On Mon, 13 May 2024, 07:30 Iain Sandoe, wrote: > On 13 May 2024, at 06:06, François Dumont wrote: > > > On 07/05/2024 18:15, Iain Sandoe wrote: >> Hi François >> >>> On 4 Ma

Re: [PATCH][_Hashtable] Fix some implementation inconsistencies

2024-05-21 Thread François Dumont
Ping ? On 13/05/2024 06:33, François Dumont wrote: libstdc++: [_Hashtable] Fix some implementation inconsistencies     Get rid of the different usages of the mutable keyword except in     _Prime_rehash_policy where it is preserved for abi compatibility reason.     Fix comment to explain

[PATCH] Avoid vector -Wfree-nonheap-object warnings

2024-05-22 Thread François Dumont
As explained in this email: https://gcc.gnu.org/pipermail/libstdc++/2024-April/058552.html I experimented -Wfree-nonheap-object because of my enhancements on algos. So here is a patch to extend the usage of the _Guard type to other parts of vector.     libstdc++: Use RAII to replace try/catc

Re: [PATCH] Avoid vector -Wfree-nonheap-object warnings

2024-05-23 Thread François Dumont
On 23/05/2024 15:31, Jonathan Wakely wrote: On 23/05/24 06:55 +0200, François Dumont wrote: As explained in this email: https://gcc.gnu.org/pipermail/libstdc++/2024-April/058552.html I experimented -Wfree-nonheap-object because of my enhancements on algos. So here is a patch to extend the

Re: [PATCH] Avoid vector -Wfree-nonheap-object warnings

2024-05-25 Thread François Dumont
On 24/05/2024 16:17, Jonathan Wakely wrote: On Thu, 23 May 2024 at 18:38, François Dumont wrote: On 23/05/2024 15:31, Jonathan Wakely wrote: On 23/05/24 06:55 +0200, François Dumont wrote: As explained in this email: https://gcc.gnu.org/pipermail/libstdc++/2024-April/058552.html I

Re: [PATCH] Avoid vector -Wfree-nonheap-object warnings

2024-05-26 Thread François Dumont
/2024 16:17, Jonathan Wakely wrote: On Thu, 23 May 2024 at 18:38, François Dumont wrote: On 23/05/2024 15:31, Jonathan Wakely wrote: On 23/05/24 06:55 +0200, François Dumont wrote: As explained in this email: https://gcc.gnu.org/pipermail/libstdc++/2024-April/058552.html I experimented -

[PATCH] Fix -Wstringop-overflow warning in 23_containers/vector/types/1.cc

2024-05-27 Thread François Dumont
In C++98 this test fails with: Excess errors: /home/fdumont/dev/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:452: warning: 'void* __builtin_memcpy(void*, const void*, long unsigned int)' writing between 2 and 9223372036854775806 bytes into a region of size 0 overflows

Re: [PATCH] Fix -Wstringop-overflow warning in 23_containers/vector/types/1.cc

2024-05-27 Thread François Dumont
/2024 22:18, Sam James wrote: François Dumont writes: In C++98 this test fails with: For this, and your other -Wfree-nonheap-object patches, could you see if it helps with any of the bugs reported for both -Wstringop-overflow and -Wfree-nonheap-object in libstdc++? There's a bunch of (possi

Re: [PATCH] Avoid vector -Wfree-nonheap-object warnings

2024-05-28 Thread François Dumont
. Tested under Linux x86_64. Ok to commit ? François On 28/05/2024 12:30, Jonathan Wakely wrote: On Mon, 27 May 2024 at 05:37, François Dumont wrote: Here is a new version working also in C++98. Can we use a different solution that doesn't involve an explicit template argument list for

Re: [PATCH] Fix -Wstringop-overflow warning in 23_containers/vector/types/1.cc

2024-05-29 Thread François Dumont
in mind do not hesitate to tell me. François On 28/05/2024 12:28, Jonathan Wakely wrote: On 27/05/24 22:07 +0200, François Dumont wrote: In C++98 this test fails with: Excess errors: /home/fdumont/dev/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_algobase.h:452: warn

Re: [PATCH] Fix -Wstringop-overflow warning in 23_containers/vector/types/1.cc PR109849

2024-06-02 Thread François Dumont
k to commit ? François On 30/05/2024 13:07, Jonathan Wakely wrote: On Thu, 30 May 2024 at 06:11, François Dumont wrote: Looks like this new version works the same to fix the warning without the issues reported here. All 23_containers/vector tests run in C++98/14/20 so far. Ok to commit once I'

Re: [PATCH] Fix -Wstringop-overflow warning in 23_containers/vector/types/1.cc PR109849

2024-06-03 Thread François Dumont
On 03/06/2024 18:20, Jonathan Wakely wrote: On Mon, 3 Jun 2024 at 05:56, François Dumont wrote: I hadn't try to make my patch as limited as possible to fix the problem, indeed. libstdc++: Fix -Wstringop-overflow warning coming from std::vector [PR109849] libstdc++-v3/Chan

Re: [PATCH][_Hashtable] Fix some implementation inconsistencies

2024-06-06 Thread François Dumont
No chance ? On 22/05/2024 06:50, François Dumont wrote: Ping ? On 13/05/2024 06:33, François Dumont wrote: libstdc++: [_Hashtable] Fix some implementation inconsistencies     Get rid of the different usages of the mutable keyword except in     _Prime_rehash_policy where it is preserved for

[_Hashtable] Optimize destructor

2024-06-09 Thread François Dumont
Hi libstdc++: [_Hashtable] Optimize destructor Hashtable destructor do not need to call clear() method that in addition to destroying all nodes also reset all buckets to nullptr. libstdc++-v3/ChangeLog:     * include/bits/hashtable.h (~_Hashtable()): Replace clear call with     a _M_deallocate

[PATCH] libstdc++: Do not use memset _Hashtable buckets allocation

2024-06-13 Thread François Dumont
Hi Following your recent change here: https://gcc.gnu.org/pipermail/libstdc++/2024-June/058998.html I think we also need to fix the memset at bucket allocation level. I did it trying also to be more fancy pointer friendly by running __uninitialized_default_n_a on the allocator returned pointe

Re: [PATCH] libstdc++: Do not use memset _Hashtable buckets allocation

2024-06-15 Thread François Dumont
pointers.     (_Hashtable_alloc::_M_deallocate_buckets): Add destroy of buckets. Tested under Linux x64, ok to commit ? François On 13/06/2024 20:58, Jonathan Wakely wrote: On Thu, 13 Jun 2024 at 19:57, Jonathan Wakely wrote: On Thu, 13 Jun 2024 at 18:40, François Dumont wrote: Hi

Re: [PATCH][_Hashtable] Fix some implementation inconsistencies

2024-06-23 Thread François Dumont
Hi Still no time ? Thanks On 06/06/2024 19:02, François Dumont wrote: No chance ? On 22/05/2024 06:50, François Dumont wrote: Ping ? On 13/05/2024 06:33, François Dumont wrote: libstdc++: [_Hashtable] Fix some implementation inconsistencies     Get rid of the different usages of the

[PATCH] _Hashtable fancy pointer support

2024-06-26 Thread François Dumont
Hi Here is my proposal to add support for fancy allocator pointer. The only place where we still have C pointers is at the iterator::pointer level but it's consistent with std::list implementation and also logical considering that we do not get value_type pointers from the allocator. I also

[committed] Fix compilation error in 2 1_neg.cc tests

2024-07-31 Thread François Dumont
Committed as trivial. Fix a compilation error that is not expected by the tests preserving the expected ones. The 'test' variable declaration is missing since commit a9260b7eb688df43a724e25421ba40f35a89fee9 that removed the test global variable in testsuite files. libstdc++-v3/ChangeLog:     *

Re: [committed] Fix compilation error in 2 1_neg.cc tests

2024-07-31 Thread François Dumont
Wed, 31 Jul 2024 at 21:59, Jonathan Wakely wrote: On Wed, 31 Jul 2024 at 21:44, François Dumont wrote: Committed as trivial. Fix a compilation error that is not expected by the tests preserving the expected ones. The 'test' variable declaration is missing si

Re: [committed] Fix compilation error in 2 1_neg.cc tests

2024-08-01 Thread François Dumont
(test01): Remove test variable     and use 'no match' dg-error patter.     * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise. Comitted with you as author. François On 01/08/2024 09:26, Jonathan Wakely wrote: On Thu, 1 Aug 2024 at 06:09, François Dum

[PATCH] Add fancy pointer support in std::map/set

2024-08-01 Thread François Dumont
Hi Here is a proposal to add fancy pointer support in std::_Rb_tree container. As you'll see there are still several usages of pointer_traits<>::pointer_to. The ones in _M_header_ptr() are unavoidable. The ones to extract a node or to return a node to the allocator are more questionable. Are

Fix gnu versioned namespace mode 00/03

2024-05-04 Thread François Dumont
Here is the list of patches to restore gnu versioned namespace mode. 1/3: Bump gnu version namespace This is important to be done first so that once build of gnu versioned namespace is fixed there is no chance to have another build of '__8' version with a different abi than last successful '__

Fix gnu versioned namespace mode 01/03

2024-05-04 Thread François Dumont
libstdc++: Bump gnu versioned namespace to __9 libstdc++-v3/ChangeLog:     * acinclude.m4 (libtool_VERSION): Bump to 9:0:0.     * config/abi/pre/gnu-versioned-namespace.ver (GLIBCXX_8.0): Replace by GLIBCXX_9.0.     Adapt all references to __8 namespace.     * c

Fix gnu versioned namespace mode 03/03

2024-05-04 Thread François Dumont
    libstdc++: Review configuration options to control abi     --disable-libstdcxx-dual-abi default to 'new' abi mode.     --with-default-libstdcxx-abi consider the requested abi mode regardless     of --disable-libstdcxx-dual-abi usage.     libstdc++-v3/ChangeLog     * acinclude.m4 (G

Fix gnu versioned namespace mode 02/03

2024-05-04 Thread François Dumont
    libstdc++: [_GLIBCXX_INLINE_VERSION] Use cxx11 abi [PR83077]     Use cxx11 abi when activating versioned namespace mode. To do so support a new     configuration mode where !_GLIBCXX_USE_DUAL_ABI and _GLIBCXX_USE_CXX11_ABI.     The main change is that std::__cow_string is now defined when

[PATCH][_Hashtable] Fix some implementation inconsistencies

2024-05-12 Thread François Dumont
    libstdc++: [_Hashtable] Fix some implementation inconsistencies     Get rid of the different usages of the mutable keyword except in     _Prime_rehash_policy where it is preserved for abi compatibility reason.     Fix comment to explain that we need the computation of bucket index noexcep

Re: Fix gnu versioned namespace mode 00/03

2024-05-12 Thread François Dumont
On 07/05/2024 18:15, Iain Sandoe wrote: Hi François On 4 May 2024, at 22:11, François Dumont wrote: Here is the list of patches to restore gnu versioned namespace mode. 1/3: Bump gnu version namespace This is important to be done first so that once build of gnu versioned namespace is

Re: PR 58148 patch

2013-08-29 Thread François Dumont
Indeed, I check the Standard about const_pointer, so here is another attempt. Tested under Linux x86_64. 2013-08-29 François Dumont PR libstdc++/58148 * include/debug/functions.h (__foreign_iterator_aux4): Use sequence const_pointer as common type to compare pointers. Add a

Re: PR 58191 patch

2013-08-30 Thread François Dumont
Hi I finally generalized this method to other debug functions, it is more consistent and clean the implementation of the debug checks. For 4.8 branch I will limit it to just what need to be really fixed. 2013-08-30 François Dumont PR libstdc++/58191 * include/debug/macros.h

Re: PR 58148 patch

2013-08-30 Thread François Dumont
Yes, this was cleaner, tested and committed this way. 2013-08-30 François Dumont PR libstdc++/58148 * include/debug/functions.h (__foreign_iterator_aux4): Use sequence const_pointer as common type to compare pointers. Add a fallback overload in case pointers cannot be cast to

Re: Remove algo logic duplication Round 3

2013-09-28 Thread François Dumont
next time. 2013-09-28 François Dumont * include/bits/stl_algo.h (remove_copy, remove_copy_if): Declare inline. (rotate_copy, stable_partition, partial_sort_copy): Likewise. (lower_bound, upper_bound, equal_range, inplace_merge): Likewise. (includes, next_permutation, prev_p

Re: New unordered containers debug check

2012-10-16 Thread François Dumont
Attached patch applied. 2012-10-16 François Dumont * include/debug/formatter.h (_Debug_msg_id): Add __msg_bucket_index_oob. * include/debug/macros.h (__glibcxx_check_bucket_index): New. * include/debug/unordered_set (unordered_set<>::begin(size_type)): Add check on

Re: Yet another debug check for unordered containers

2012-10-18 Thread François Dumont
On 10/18/2012 11:12 AM, Paolo Carlini wrote: On 10/17/2012 10:05 PM, François Dumont wrote: Ok to commit ? Ok, thanks. Paolo. Attached patch applied. 2012-10-18 François Dumont * include/debug/formatter.h (_Debug_msg_id): Add __msg_valid_load_factor. * include/debug

Re: unordered set design modification

2012-10-21 Thread François Dumont
On 10/21/2012 11:47 AM, Paolo Carlini wrote: On 10/20/2012 11:07 PM, François Dumont wrote: I have also put a fix in profile/map.h even if it is unrelated to this evolution. Should I commit it outside this patch ? Yes please! Thanks, Paolo. Attached patch applied. 2012-10-21

Re: unordered set design modification

2012-10-22 Thread François Dumont
Attached patch applied. 2012-10-22 François Dumont * include/bits/unordered_set.h (unordered_set<>): Prefer aggregation to inheritance with _Hashtable. (unordered_multiset<>): Likewise. * include/debug/unordered_set (operator==): Adapt. * include/profile/u

Re: unordered map design modification

2012-10-27 Thread François Dumont
On 10/26/2012 10:41 AM, Paolo Carlini wrote: On 10/25/2012 10:15 PM, François Dumont wrote: Here is the patch to apply the same modification applied to unordered_set and unordered_multiset. It also use default implementation for unordered_set/unordered_multiset copy/move constructor

Debug functions review

2013-10-22 Thread François Dumont
Hi Here is a patch to clean up a little some debug functions. I got rid of the __check_singular_aux, simply playing with __check_singular overloads was enough. I also added the missing __check_dereferenceable for safe local iterators. 2013-10-22 François Dumont * include/debug

Re: Debug functions review

2013-10-23 Thread François Dumont
On 10/23/2013 12:37 AM, Paolo Carlini wrote: Hi, "François Dumont" ha scritto: Hi Here is a patch to clean up a little some debug functions. I got rid of the __check_singular_aux, simply playing with __check_singular overloads was enough. I also added t

Re: Debug functions review

2013-10-24 Thread François Dumont
On 10/24/2013 12:12 AM, Paolo Carlini wrote: On 10/23/2013 11:22 PM, François Dumont wrote: You are right, I am preparing a test case. However you have to know that __check_dereferenceable is simply not used for the moment. It is only because I have started using it for a debug mode evolution

std::vector move assign patch

2013-12-27 Thread François Dumont
patch also fix those issues in the debug mode for the vector container. Fixes for other containers in debug mode will come later. 2013-12-27 François Dumont * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass *this allocator instance when building temporary

Rb tree node recycling patch

2013-12-27 Thread François Dumont
looks good enough to me. If you want me to add some I will when back from vacation. I am mostly submitting this patch to show you that I worked on it and you do not need to do it yourself. 2013-12-27 François Dumont * include/bits/stl_tree.h (_Rb_tree_reuse_or_alloc_node<

Re: Rb tree node recycling patch

2014-01-03 Thread François Dumont
at for example at my new tests which feature: // { dg-options "-std=gnu++11" } // { dg-options "-std=gnu++11 -DSIMULATOR_TEST" { target simulator } } Which enables the macro SIMULATOR_TEST on simulators, where I do much less testing (else the tester takes too long. On 2

Re: std::vector move assign patch

2014-01-07 Thread François Dumont
I saw on another thread that 4.9 release was getting closer. Applying this patch sounds like a good idear for this release. Any feedback ? On 12/27/2013 07:27 PM, François Dumont wrote: Hi Here is a patch to fix an issue in normal mode during the move assignment. The destination vector

PR 59712 patch

2014-01-09 Thread François Dumont
clang feedback would be appreciated. 2014-01-10 François Dumont * include/bits/hashtable_policy.h: Fix some long lines. * include/bits/hashtable.h (__hash_code_base_access): Define and use it to check its _M_bucket_index noexcept qualification. Use also in pla

Re: Rb tree node recycling patch

2014-01-09 Thread François Dumont
On 01/08/2014 02:34 PM, Paolo Carlini wrote: Hi, On 12/27/2013 07:30 PM, François Dumont wrote: Note that this patch contains also a cleanup of a useless template parameter _Is_pod_comparator on _Rb_tree_impl. The useless parameter is a remnant of an attempt at exploiting the EBO for

Re: PR 59712 patch

2014-01-11 Thread François Dumont
On 01/09/2014 11:49 PM, Jonathan Wakely wrote: On 9 January 2014 21:55, François Dumont wrote: All unordered_* tests run under Linux x86_64. Please make sure you run the entire testsuite, not just the parts that seem relevant. Done and no failure, ok to commit ? François

Re: Fix tree containers debug mode C++11 allocator awareness

2014-01-13 Thread François Dumont
On 12/22/2013 09:55 PM, François Dumont wrote: On 12/22/2013 12:51 PM, Jonathan Wakely wrote: On 21 December 2013 08:51, François Dumont wrote: Any feedback for this proposal ? It looks good but I don't have time to review it fully yet, please be patient. I'm more concerned

Elimitate duplication of get_catalogs in different abi

2015-07-27 Thread François Dumont
Hi This is the patch to get rid of the duplication of the get_catalogs functions in the .so. I used c++locale_internal.h that seems to be there for this kind of purpose. * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs): Move... * config/locale/gnu/c++locale_in

Add irreflexive comparison debug check

2015-07-29 Thread François Dumont
Hi Here is a patch to add irreflexive debug check. Standard algos signatures are such that there is no guaranty that the operator < or predicate to compare the iterator value type will exist. So I had to check if the call is valid using C++11 features declval and decltype. * include/

Re: Elimitate duplication of get_catalogs in different abi

2015-07-30 Thread François Dumont
welcome. François On 27/07/2015 22:30, François Dumont wrote: > Hi > > This is the patch to get rid of the duplication of the get_catalogs > functions in the .so. > > I used c++locale_internal.h that seems to be there for this kind of > purpose. > &

Re: Add irreflexive comparison debug check

2015-07-31 Thread François Dumont
On 30/07/2015 12:30, Jonathan Wakely wrote: > On 29/07/15 22:08 +0200, François Dumont wrote: >> Hi >> >>Here is a patch to add irreflexive debug check. > > Awesome! > > You can add PR libstdc++/60519 to the changelog. Sure. > > >>Standa

Re: vector lightweight debug mode

2015-09-16 Thread François Dumont
On 14/09/2015 21:50, Jonathan Wakely wrote: > On 14/09/15 20:27 +0200, François Dumont wrote: >> Hi >> >>Here is what I had in mind when talking about moving debug checks to >> the lightweight debug checks. > > Ah yes, I hadn't thought about removing

Re: debug mode symbols cleanup

2015-09-17 Thread François Dumont
On 15/09/2015 23:57, Jonathan Wakely wrote: > On 14/09/15 20:26 +0200, François Dumont wrote: >> On 08/09/2015 22:47, François Dumont wrote: >>> On 07/09/2015 13:03, Jonathan Wakely wrote: >>>> On 05/09/15 22:53 +0200, François Dumont wrote: >>>>>

Re: vector lightweight debug mode

2015-09-19 Thread François Dumont
On 16/09/2015 22:29, Jonathan Wakely wrote: > >>> constexpr bool __move_storage = _Alloc_traits::_S_propagate_on_move_assign() || _Alloc_traits::_S_always_equal(); @@ -778,7 +779,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ refer

Re: Elimitate duplication of get_catalogs in different abi

2015-09-23 Thread François Dumont
On 05/09/2015 23:02, François Dumont wrote: > On 22/08/2015 14:24, Daniel Krügler wrote: >> 2015-08-21 23:11 GMT+02:00 François Dumont : >>> I think I found a better way to handle this problem. It is c++locale.cc >>> that needs to be built with --fimplicit-templ

Re: New power of 2 hash policy

2015-09-24 Thread François Dumont
On 11/09/2015 15:23, Jonathan Wakely wrote: > On 11/09/15 14:18 +0100, Jonathan Wakely wrote: >> On 11/09/15 15:11 +0200, Michael Matz wrote: >>> Hi, >>> >>> On Thu, 10 Sep 2015, François Dumont wrote: >>> >>>>Here is a patch to offer an

Re: New power of 2 hash policy

2015-09-28 Thread François Dumont
On 25/09/2015 15:28, Jonathan Wakely wrote: > @@ -501,6 +503,129 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >> mutable std::size_t_M_next_resize; >> }; >> >> + /// Range hashing function considering that second args is a power >> of 2. > > Does this mean "assuming" not "considering"? I assume

Re: Elimitate duplication of get_catalogs in different abi

2015-09-29 Thread François Dumont
On 25/09/2015 17:58, Jonathan Wakely wrote: > On 25/09/15 16:10 +0100, Jonathan Wakely wrote: >> On 25/09/15 16:08 +0100, Jonathan Wakely wrote: >>> On 23/09/15 21:28 +0200, François Dumont wrote: >>>> On 05/09/2015 23:02, François Dumont wrote: >>>>&

Re: vector lightweight debug mode

2015-10-07 Thread François Dumont
François On 19/09/2015 11:47, Jonathan Wakely wrote: > On 19 September 2015 at 10:12, Jonathan Wakely wrote: >> On 19 September 2015 at 08:31, François Dumont wrote: >>> On 16/09/2015 22:29, Jonathan Wakely wrote: >>>> No, because it is undefined to compare iterat

Re: vector lightweight debug mode

2015-10-12 Thread François Dumont
On 07/10/2015 22:09, Jonathan Wakely wrote: > On 07/10/15 21:38 +0200, François Dumont wrote: >> Hi >> >>I completed vector assertion mode. Here is the result of the new >> test you will find in the attached patch. >> >> With debug mode: >> /home/f

Re: New power of 2 hash policy

2015-10-19 Thread François Dumont
Is this one ok ? François On 28/09/2015 21:16, François Dumont wrote: > On 25/09/2015 15:28, Jonathan Wakely wrote: >> @@ -501,6 +503,129 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >>> mutable std::size_t_M_next_resize; >>> }; >>> >>> + /// R

Remove instantiations when no concept check

2015-11-09 Thread François Dumont
Hi I just committed this trivial cleanup. 2015-11-09 François Dumont * include/bits/stl_algo.h (partial_sort_copy): Instantiate std::iterator_traits only if concept checks. (lower_bound): Likewise. (upper_bound): Likewise. (equal_range): Likewise

Re: vector lightweight debug mode

2015-11-15 Thread François Dumont
On 12/10/2015 21:42, François Dumont wrote: > On 07/10/2015 22:09, Jonathan Wakely wrote: >> On 07/10/15 21:38 +0200, François Dumont wrote: >>> Hi >>> >>>I completed vector assertion mode. Here is the result of the new >>> test you will find i

Re: vector lightweight debug mode

2015-11-17 Thread François Dumont
On 16/11/2015 11:29, Jonathan Wakely wrote: > On 15/11/15 22:12 +0100, François Dumont wrote: >> Here is a last version I think. >> >>I completed the debug light mode by adding some check on iterator >> ranges. >> >>Even if check are ligh

Debug iterators operator->

2015-11-18 Thread François Dumont
Hi I always wanted to fix those operators implementation so that it just use underlying iterator -> operator like for the other operators. And I also notice the @todo on it today so maybe it is still time to fix those. * include/debug/safe_iterator.h (_Safe_iterator<>::operator->()):

Re: vector lightweight debug mode

2015-11-19 Thread François Dumont
Thanks for the explanation, it is much clearer. So here is a the more limited patch. Tested under Linux x86_64. Ok to commit ? François On 18/11/2015 13:27, Jonathan Wakely wrote: > On 17/11/15 20:49 +0100, François Dumont wrote: >> On 16/11/2015 11:29, Jonathan Wakely wrote: >

[PATCH] Limit includes in hashtable_policy.h

2020-02-27 Thread François Dumont
When I use std::is_permutation in hashtable_policy.h I included stl_algo.h which is a large header. No other header in include/bits does this, I would prefer not being the first to do such a thing. As it is a recent change I prefer to submit this patch now. Git commit message:     libstdc++ H

Re: [PATCH] PR libstdc++/91620 Implement DR 526 for std::[forward_]list::remove_if/unique

2020-03-02 Thread François Dumont
Hi     Isn't it something to fix before gcc 10 release ? François On 12/27/19 11:57 AM, François Dumont wrote: Here is the patch to extend DR 526 to forward_list and list remove_if and unique. As the adopted pattern is simpler I also applied it to the remove methods.     PR li

Fix Debug mode Undefined Behavior

2020-03-03 Thread François Dumont
After the fix of PR 91910 I tried to consider other possible race condition and I think we still have a problem. Like stated in the PR when a container is destroyed all associated iterators are made singular. If at the same time another thread try to access this iterator the _M_singular check

Bind to std::equal plumbing in ranges::equal

2020-03-05 Thread François Dumont
I started to work on ranges::equal to find out if what I am trying to do is totally silly. With this patch ranges::equal is in pare with std::equal specializations that is to say that it correctly deals with Debug mode or std::deque iterators. Once below patch is in: https://gcc.gnu.org/ml/

Bind to std::equal plumbing in ranges::equal

2020-03-05 Thread François Dumont
I started to work on ranges::equal to find out if what I am trying to do is totally silly. With this patch ranges::equal is in pare with std::equal specializations that is to say that it correctly deals with Debug mode or std::deque iterators. Once below patch is in: https://gcc.gnu.org/ml/

Re: Bind to std::equal plumbing in ranges::equal

2020-03-08 Thread François Dumont
On 3/6/20 11:12 AM, Jonathan Wakely wrote: On 06/03/20 10:09 +, Jonathan Wakely wrote: On 06/03/20 07:06 +0100, François Dumont wrote: I started to work on ranges::equal to find out if what I am trying to do is totally silly. With this patch ranges::equal is in pare with std::equal

Re: copy/copy_backward/fill/fill_n/equal rework

2019-09-24 Thread François Dumont
Ping ? On 9/9/19 8:34 PM, François Dumont wrote: Hi     This patch improves stl_algobase.h copy/copy_backward/fill/fill_n/equal implementations. The improvements are: - activation of algo specialization for __gnu_debug::_Safe_iterator (w/o _GLIBCXX_DEBUG mode) - activation of algo

Re: [PATCH] Help compiler detect invalid code

2019-09-25 Thread François Dumont
27;t need Debug mode. OK to commit ? François On 9/20/19 7:08 AM, François Dumont wrote: I already realized that previous patch will be too controversial to be accepted. In this new version I just implement a real memmove in __memmove so that in copy_backward there is no need for a sho

Re: [PATCH] PR libstdc++/91910 fix data race in Debug Mode destructors

2019-09-27 Thread François Dumont
On 9/26/19 3:20 PM, Jonathan Wakely wrote: Fix data race when _Safe_iterator_base::_M_detach() runs concurrently with the _Safe_container_base destructor. PR libstdc++/91910 * src/c++11/debug.cc (_Safe_iterator_base::_M_detach()): Load pointer atomically and lock the mutex before ac

Re: [PATCH] Help compiler detect invalid code

2019-09-27 Thread François Dumont
On 9/27/19 2:11 PM, Jonathan Wakely wrote: On 19/09/19 22:27 +0200, François Dumont wrote: Hi     I start working on making recently added constexpr tests to work in Debug mode. The attached patch seems to be necessary for that, right? On my side I had done this, almost the same. For

Re: copy/copy_backward/fill/fill_n/equal rework

2019-09-27 Thread François Dumont
On 9/27/19 2:28 PM, Jonathan Wakely wrote: On 09/09/19 20:34 +0200, François Dumont wrote: Hi     This patch improves stl_algobase.h copy/copy_backward/fill/fill_n/equal implementations. The improvements are: - activation of algo specialization for __gnu_debug::_Safe_iterator (w/o

[PATCH] Fix algo constexpr tests in Debug mode

2019-09-28 Thread François Dumont
Safe_iterator<>&)): Likewise.     (__equal_aux(const _Safe_iterator<>&,     const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise. François On 9/27/19 6:45 PM, Jonathan Wakely wrote: On 27/09/19 18:24 +0200, François Dumont wrote: On 9/27/19 2:1

Re: [PATCH] Fix algo constexpr tests in Debug mode

2019-09-30 Thread François Dumont
On 9/30/19 11:03 AM, Jonathan Wakely wrote: On 28/09/19 23:12 +0200, François Dumont wrote: Here is what I just commited. Thanks. In my branch I had a lot more _GLIBCXX20_CONSTEXPR additions in the debug mode headers. Is it not needed on __check_singular, __foreign_iterator etc. ? Yes, I

[PATCH] Implement C++20 P1023 for __debug::array

2019-09-30 Thread François Dumont
This is a missing part of C++20 P1023 for __debug::array.     Implement C++20 p1023 - constexpr comparison operators for __debug::array.     * include/debug/array: Add C++20 constexpr to comparison operators.     * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adapt     dg-err

Re: [PATCH] Help compiler detect invalid code

2019-10-01 Thread François Dumont
On 9/27/19 1:24 PM, Jonathan Wakely wrote: On 20/09/19 07:08 +0200, François Dumont wrote: I already realized that previous patch will be too controversial to be accepted. In this new version I just implement a real memmove in __memmove so A real memmove doesn't just work backward

[PATCH] Add std::copy_n debug checks

2019-10-03 Thread François Dumont
Hi     We are missing obvious debug checks in std::copy_n. Moreover I'll need them when I'll remove the Debug layer in a coming patch.     Tested under Linux x86_64.     * include/bits/stl_algo.h (copy_n): Add __glibcxx_requires_can_increment     debug checks.     * testsuite/25_algorithms

[PATCH] Add std::__iterator_category_t

2019-10-03 Thread François Dumont
Hi     May I add this convenient function ? I'll also use it in coming patches.     Note that I removed a template parameter in __is_random_access_iter in C++11.     * include/bits/stl_iterator_base_types.h (__iterator_category_t): Define     for C++11.     (__is_random_access_iter): Ada

Re: Add std::copy_n overload for istreambuf_iterator

2019-10-03 Thread François Dumont
On 9/27/19 1:00 PM, Jonathan Wakely wrote: On 19/07/19 23:37 +0200, François Dumont wrote: It sounds reasonable to overload std::copy_n for istreambuf_iterator. I wonder whether it's worth doing: #if __cplusplus >= 201703L    if constexpr (is_same_v<_OutputIterator, _CharT*>

Re: [PATCH] Improve _Safe_iterator _M_distance_to

2019-10-04 Thread François Dumont
I eventually committed the attach patch. The usage of __dp_sign_max_size will come later. François On 9/27/19 1:45 PM, Jonathan Wakely wrote: On 16/09/19 22:31 +0200, François Dumont wrote:     Here is the patch to improve _Safe_iterator<>::_M_get_distance_to implementation. I introd

[PATCH] Review std::copy istreambuf_iterator specialization

2019-10-08 Thread François Dumont
Hi     Following what has been done for std::copy_n I think we could simplify the __copy_move_a2 overload to also use sgetn. Code is simpler and we avoid a friend declaration.     Tested under Linux x86_64.     * include/std/streambuf (__copy_move_a2): Remove friend declaration.     * inclu

Re: copy/copy_backward/fill/fill_n/equal rework

2019-10-08 Thread François Dumont
check if I can find a way to confirm that a given overload is indeed being called. So here is this patch again. François On 9/27/19 11:14 PM, François Dumont wrote: On 9/27/19 2:28 PM, Jonathan Wakely wrote: On 09/09/19 20:34 +0200, François Dumont wrote: Hi     This patch improves stl_algoba

Re: Add std::copy_n overload for istreambuf_iterator

2019-10-09 Thread François Dumont
On 10/9/19 10:18 PM, Christophe Lyon wrote: On Fri, 4 Oct 2019 at 07:01, François Dumont <mailto:frs.dum...@gmail.com>> wrote: On 9/27/19 1:00 PM, Jonathan Wakely wrote: > On 19/07/19 23:37 +0200, François Dumont wrote: >> It sounds reasonable to overlo

Re: Add std::copy_n overload for istreambuf_iterator

2019-10-10 Thread François Dumont
te: On Fri, 4 Oct 2019 at 07:01, François Dumont <mailto:frs.dum...@gmail.com>> wrote: On 9/27/19 1:00 PM, Jonathan Wakely wrote: > On 19/07/19 23:37 +0200, François Dumont wrote: >> It sounds reasonable to overload std::copy_n for istreambuf_iterator.

[PATCH] Implement std::advance for istreambuf_iterator using pubseekoff

2019-10-14 Thread François Dumont
The same way I proposed to review std::copy overload for istreambuf_iterator we can implement std::advance using pubseekoff. It is both a cleaner implementation and avoids yet another friend declaration.     * include/std/streambuf     (advance(istreambuf_iterator<>&, _Distance)): Remove fri

Re: [PATCH] Implement std::advance for istreambuf_iterator using pubseekoff

2019-10-15 Thread François Dumont
std::advance algo. François On 10/14/19 10:12 PM, François Dumont wrote: The same way I proposed to review std::copy overload for istreambuf_iterator we can implement std::advance using pubseekoff. It is both a cleaner implementation and avoids yet another friend declaration.     * include

[PATCH] ostreambuf_iterator std::advance overload

2019-10-15 Thread François Dumont
Hi     I completed this overload before noticing that the Standard do not expect anything when 'advancing' an output iterator.     But as I've done it consistenly with the istreambuf_iterator here it is with samples about how to use it.     Let me know if acceptable. François diff --git a

[PATCH] Clarify constness and state

2019-10-15 Thread François Dumont
    * src/c++11/debug.cc (print_field): Replace constness_names     entry with . Replace state_names entry with     . Committed as trivial. François Index: src/c++11/debug.cc === --- src/c++11/debug.cc (révision 277048) +++ sr

Re: [PATCH] Help compiler detect invalid code

2019-10-16 Thread François Dumont
_neg.cc: New.     * testsuite/25_algorithms/move/constexpr.cc: New.     * testsuite/25_algorithms/move/constexpr_neg.cc: New. François On 10/10/19 10:03 PM, Jonathan Wakely wrote: On 01/10/19 22:05 +0200, François Dumont wrote: On 9/27/19 1:24 PM, Jonathan Wakely wrote: On 20/09/19 07:08 +0200, François Dum

[PATCH][Hashtable 0/6] Code review

2019-11-17 Thread François Dumont
This is the begining of a patch series for _Hashtable Initial patch to clarify code. I was tired to see true/false or true_type/false_type without knowing what was true/false. I also made code more consistent by chosing to specialize methods through usage of __unique_keys_t/__multi_keys_t rat

[PATCH][Hashtable 1/6] Code simplification/optimization

2019-11-17 Thread François Dumont
This patch simplifies a number of implementations. It tries as much as possible to avoid computing hash code. This is especially true for the erase implementation in case of multi keys.     * include/bits/hashtable_policy.h (_Map_base<>::at): Use     _Hashtable<>::find. (_Hashtable_base<>::_E

<    1   2   3   4   5   6   7   8   9   10   >