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

2023-09-28 Thread Jonathan Wakely
dc++/111050 > > * include/bits/hashtable_policy.h > > (_Hash_node_value_base<>::_M_valptr(), > > _Hash_node_value_base<>::_M_v()) > > Add [[__gnu__::__always_inline__]]. > > > > Ok to commit ? > > > > On

Re: [committed] libstdc++: Add GDB printers for types

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:37 Tom Tromey, wrote: > Jonathan> The changes made by black seem reasonable, though I prefer it > Jonathan> with -S to disable string-normalization. It also needs an > Jonathan> option to use 79 as the maximum line length. > > I've got some patches I'm about to send. > >

Re: [PATCH 1/7] libstdc++: Show full Python stack on error

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:48 Tom Tromey via Libstdc++, wrote: > This changes the libstdc++ test suite to arrange for gdb to show the > full Python stack if any sort of Python exception occurs. This makes > debugging the printers a little simpler. > Oh I wish I'd known about this sooner. OK for

Re: [PATCH 6/7] libstdc++: Fix regex escapes in pretty-printers

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:50 Tom Tromey via Libstdc++, wrote: > flake8 pointed out that some regexes in the pretty-printers are > missing a backslash. This patch fixes these. > I already have a patch to use r'...' for these, so we only need the single backslash. I'm also refactoring all those r

Re: [PATCH 7/7] libstdc++: Use Python "not in" operator

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:54 Tom Tromey via Libstdc++, wrote: > flake8 warns about code like > > not something in "whatever" > > Ordinarily in Python this should be written as: > > something not in "whatever" > > This patch makes this change. > OK, thanks. > libstdc++-v3/ChangeLog: > >

Re: [PATCH 4/7] libstdc++: Remove unused locals from printers.py

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:50 Tom Tromey via Libstdc++, wrote: > flake8 pointed out some unused local variables in the libstdc++ > pretty-printers. This removes them. > OK, thanks. > libstdc++-v3/ChangeLog: > > * python/libstdcxx/v6/printers.py > (StdExpOptionalPrinter.__init__

Re: [PATCH 3/7] libstdc++: Remove unused Python imports

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:50 Tom Tromey via Libstdc++, wrote: > flake8 pointed out some unused imports. > OK, thanks. > libstdc++-v3/ChangeLog: > > * python/libstdcxx/v6/printers.py: Don't import 'os'. > * python/libstdcxx/v6/__init__.py: Don't import 'gdb'. > --- > libstdc++-

Re: [PATCH 5/7] libstdc++: Remove std_ratio_t_tuple

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 18:55 Tom Tromey via Libstdc++, wrote: > This removes the std_ratio_t_tuple function from the Python > pretty-printer code. It is not used. Apparently the relevant parts > were moved to StdChronoDurationPrinter._ratio at some point in the > past. > I think I added it at t

[committed] libstdc++: Format Python docstrings according to PEP 357

2023-09-28 Thread Jonathan Wakely
Tested x86_64-linux (GDB 13.2, Python 3.11). Pushed to trunk. -- >8 -- libstdc++-v3/ChangeLog: * python/libstdcxx/v6/printers.py: Format docstrings according to PEP 257. * python/libstdcxx/v6/xmethods.py: Likewise. --- libstdc++-v3/python/libstdcxx/v6/printers.py | 177 +

[committed] libstdc++: Reformat Python code

2023-09-28 Thread Jonathan Wakely
Tested x86_64-linux (GDB 13.2, Python 3.11). Pushed to trunk. -- >8 -- Some of these changes were suggested by autopep8's --aggressive option, others are for readability. Break long lines by splitting strings across multiple lines, or introducing local variables to hold results. Use raw strings

[committed] libstdc++: Refactor Python Xmethods to use is_specialization_of

2023-09-28 Thread Jonathan Wakely
Tested x86_64-linux (GDB 13.2, Python 3.11). Pushed to trunk. -- >8 -- This copies the is_specialization_of function from printers.py (with slight modification for versioned namespace handling) and reuses it in xmethods.py to replace repetitive re.match calls in every class. This fixes the probl

Re: [PATCH 2/7] libstdc++: Use gdb.ValuePrinter base class

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023 at 18:50, Tom Tromey via Libstdc++ wrote: > > GDB 14 will add a new ValuePrinter tag class that will be used to > signal that pretty-printers will agree to the "extension protocol" -- > essentially that they will follow some simple namespace rules, so that > GDB can add new me

Re: [PATCH 2/7] libstdc++: Use gdb.ValuePrinter base class

2023-09-28 Thread Jonathan Wakely
On Thu, 28 Sept 2023, 21:38 Tom Tromey, wrote: > Jonathan> I've pushed the changes I wanted to make, so you'll have to > rebase > Jonathan> your patches now, sorry. > > No problem. I rebased & re-tested them. > I can send a v2 if you want to double-check (only this large patch > required any cha

Re: [PATCH] libstdc++: Ensure active union member is correctly set

2023-09-29 Thread Jonathan Wakely
On Fri, 29 Sept 2023 at 00:25, Nathaniel Shead wrote: > > On Wed, Sep 27, 2023 at 03:13:35PM +0100, Jonathan Wakely wrote: > > On Sat, 23 Sept 2023 at 08:30, Nathaniel Shead via Libstdc++ > > wrote: > > > > > > On Sat, Sep 23, 2023 at 07:40:48AM +0100, Jonat

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

2023-09-29 Thread Jonathan Wakely
On Thu, 28 Sept 2023 at 18:25, François Dumont wrote: > > > On 28/09/2023 18:18, Jonathan Wakely wrote: > > On Wed, 27 Sept 2023 at 05:44, François Dumont wrote: > >> Still no chance to get feedback from TC ? Maybe I can commit the below > >> then ? > > I

Re: [PATCH] vec.h, v3: Make some ops work with non-trivially copy constructible and/or destructible types

2023-09-29 Thread Jonathan Wakely
rd said he's playing with poly_int_pod vs. poly_int and I'll resolve > the remaining stuff incrementally afterwards plus enable the assert. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? > > 2023-09-28 Jakub Jelinek > Jonathan

Re: Fix compilation errors with libstdc++v3 for AVR target and allow --enable-libstdcxx

2023-09-29 Thread Jonathan Wakely
On Tue, 6 Dec 2016 at 17:59, Jonathan Wakely wrote: > >Subject: [PATCH 3/3] Enable libstdc++ compilation in AVR targets > > > >Enable libstdc++ compilation in AVR targets with AVR-Libc. Most > >floating point math functions are already defined in AVR-Libc, so > >

Re: Fix compilation errors with libstdc++v3 for AVR target and allow --enable-libstdcxx

2023-09-29 Thread Jonathan Wakely
On Fri, 29 Sept 2023 at 15:07, Jonathan Wakely wrote: > > On Tue, 6 Dec 2016 at 17:59, Jonathan Wakely wrote: > > >Subject: [PATCH 3/3] Enable libstdc++ compilation in AVR targets > > > > > >Enable libstdc++ compilation in AVR targets with AVR-Libc. Most >

Re: [PATCH v3] libstdc++: Fix handling of surrogate CP in codecvt [PR108976]

2023-09-29 Thread Jonathan Wakely
On Thu, 28 Sept 2023 at 20:39, Dimitrij Mijoski via Libstdc++ wrote: > > This patch fixes the handling of surrogate code points in all standard > facets for transcoding Unicode that are based on std::codecvt. Surrogate > code points should always be treated as error. On the other hand > surrogate

Re: [PATCH] libstdc++: Ensure active union member is correctly set

2023-09-29 Thread Jonathan Wakely
On Fri, 29 Sept 2023 at 10:32, Jonathan Wakely wrote: > > Thanks for the comments, here's an updated version of the patch. > > Bootstrapped and regtested on x86_64-pc-linux-gnu. > > Great, I'll get this committed today - thanks! That's done now. > > >

Re: [PATCH] libstdc++: Ensure active union member is correctly set

2023-09-29 Thread Jonathan Wakely
On Fri, 29 Sept 2023 at 17:29, Nathaniel Shead wrote: > > On Fri, Sep 29, 2023 at 04:06:33PM +0100, Jonathan Wakely wrote: > > On Fri, 29 Sept 2023 at 10:32, Jonathan Wakely wrote: > > > > Thanks for the comments, here's an updated version of the patch. > >

Re: [PATCH] Fix coroutine tests for libstdc++ gnu-version-namespace mode

2023-10-03 Thread Jonathan Wakely
On Mon, 2 Oct 2023 at 18:07, François Dumont wrote: > > Hi > > Gentle reminder for this minor patch. It looks like you attached the wrong patch. > > Thanks > > On 23/09/2023 22:10, François Dumont wrote: > > I'm eventually fixing those tests the same way we manage this problem > > in libstdc++

Re: [PATCH 2/2] libstdc++: _versioned_namespace is always non-None

2023-10-03 Thread Jonathan Wakely
On Tue, 3 Oct 2023, 19:27 Tom Tromey, wrote: > Some code in the pretty-printers seems to assume that the > _versioned_namespace global might be None (or the empty string). > However, doesn't occur, as the variable is never reassigned. > ok for trunk, but we should just remove that bit from xmeth

Re: [PATCH 2/2] libstdc++: _versioned_namespace is always non-None

2023-10-03 Thread Jonathan Wakely
On Tue, 3 Oct 2023, 23:55 Jonathan Wakely, wrote: > > > On Tue, 3 Oct 2023, 19:27 Tom Tromey, wrote: > >> Some code in the pretty-printers seems to assume that the >> _versioned_namespace global might be None (or the empty string). >> However, doesn't occur,

Re: [PATCH 1/2] libstdc++: Define _versioned_namespace in xmethods.py

2023-10-03 Thread Jonathan Wakely
On Tue, 3 Oct 2023, 18:19 Tom Tromey, wrote: > flake8 pointed out that is_specialization_of in xmethods.py looks at a > global that wasn't added to the file. This patch correct the > oversight. > OK, thanks > > libstdc++-v3/ChangeLog: > > * python/libstdcxx/v6/xmethods.py (_versioned

Re: [PATCH 1/2] testsuite: Add dg-require-atomic-exchange non-atomic code

2023-10-04 Thread Jonathan Wakely
On Wed, 4 Oct 2023 at 03:56, Hans-Peter Nilsson wrote: > > > From: Christophe Lyon > > Date: Tue, 3 Oct 2023 15:20:39 +0200 > > > Maybe we need a new variant of dg-require-thread-fence ? > > Yes: many of the dg-require-thread-fence users need > something stronger. Tested arm-eabi together with t

Re: [PATCH 2/2] testsuite: Replace many dg-require-thread-fence with dg-require-atomic-exchange

2023-10-04 Thread Jonathan Wakely
On Wed, 4 Oct 2023 at 04:11, Hans-Peter Nilsson wrote: > > > From: Christophe Lyon > > Date: Tue, 3 Oct 2023 15:20:39 +0200 > > > The patch passed almost all our CI configurations, except arm-eabi when > > testing with > > -mthumb/-march=armv6s-m/-mtune=cortex-m0/-mfloat-abi=soft/-mfpu=auto > >

[committed,gcc-11] libstdc++: Fix testsuite failures with -O0

2023-10-04 Thread Jonathan Wakely
I've pushed this to gcc-11 after testing on x86_64-linux. -- >8 -- Backport the prune.exp change from r12-4425-g1595fe44e11a96 to fix two testsuite failures when testing with -O0: FAIL: 20_util/uses_allocator/69293_neg.cc (test for excess errors) FAIL: 20_util/uses_allocator/cons_neg.cc (test for

[PATCH] wwwdocs: Add ADL to C++ non-bugs

2023-10-04 Thread Jonathan Wakely
We have a long history of INVALID bugs about std functions being available in the global namespace (PRs 27846, 67566, 82619, 99865, 110602, 111553, probably others). Let's document it. Also de-prioritize the C++98-only bugs, which are unlikely to affect anybody nowadays. OK for wwwdocs? -- >8 --

Re: [PATCH] libstdc++: Correctly call _string_types function

2023-10-04 Thread Jonathan Wakely
On Wed, 4 Oct 2023 at 16:10, Tom Tromey wrote: > > flake8 points out that the new call to _string_types from > StdExpAnyPrinter.__init__ is not correct -- it needs to be qualified. OK, thanks. > > libstdc++-v3/ChangeLog: > > * python/libstdcxx/v6/printers.py > (StdExpAnyPrinter.

Re: [committed] libstdc++: Define std::numeric_limits<_FloatNN> before C++23

2023-10-04 Thread Jonathan Wakely
On Wed, 4 Oct 2023 at 16:54, Stephan Bergmann wrote: > > On 8/17/23 22:32, Jonathan Wakely via Libstdc++ wrote: > > Tested x86_64-linux. Pushed to trunk. > > > > -- >8 -- > > > > The extended floating-point types such as _Float32 are supported by GCC >

Re: [PATCH 2/2] testsuite: Replace many dg-require-thread-fence with dg-require-atomic-exchange

2023-10-04 Thread Jonathan Wakely
On Wed, 4 Oct 2023 at 16:15, Hans-Peter Nilsson wrote: > > > From: Jonathan Wakely > > Date: Wed, 4 Oct 2023 09:29:43 +0100 > > > The new dg-require proc checks for __atomic_exchange, which is not the > > same as compare-exchange, and not the same as test-and-set on

Re: [PATCH] wwwdocs: Add ADL to C++ non-bugs

2023-10-05 Thread Jonathan Wakely
On Wed, 4 Oct 2023 at 20:17, Jason Merrill wrote: > > On 10/3/23 10:45, Jonathan Wakely wrote: > > We have a long history of INVALID bugs about std functions being > > available in the global namespace (PRs 27846, 67566, 82619, 99865, > > 110602, 111553, probably ot

Re: [PATCH][_GLIBCXX_INLINE_VERSION] Add missing symbols

2023-10-05 Thread Jonathan Wakely
On Thu, 5 Oct 2023 at 18:04, François Dumont wrote: > > Here is a patch to fix following test case in gcc: > > gcc/testsuite/g++.dg/cpp23/ext-floating13.C > > libstdc++: [_GLIBCXX_INLINE_VERSION] Add missing float symbols > > libstdc++-v3/ChangeLog: > > * config/abi/pre/gnu-

Re: [PATCH] libstdc++: Fix tr1/8_c_compatibility/cstdio/functions.cc regression with recent glibc

2023-10-12 Thread Jonathan Wakely
On Thursday, 12 October 2023, Jakub Jelinek wrote: > Hi! > > The following testcase started FAILing recently after the > https://sourceware.org/git/?p=glibc.git;a=commit;h=64b1a44183a3094672ed304532bedb9acc707554 > glibc change which marked vfscanf with nonnull (1) attribute. > While vfwscanf hasn

Re: Ping: [PATCH v2 1/2] testsuite: Add dg-require-atomic-cmpxchg-word

2023-10-12 Thread Jonathan Wakely
On Thu, 12 Oct 2023, 17:11 Jeff Law, wrote: > > > On 10/12/23 08:38, Christophe Lyon wrote: > > LGTM but I'm not a maintainer ;-) > LGTM to as well -- I usually try to stay out of libstdc++, but this > looks simple enough. Both patches in this series are OK. > Thanks for stepping in, Jeff. The

Re: [PATCH] libstdc++: Workaround for LLVM-61763 in ranges

2023-10-14 Thread Jonathan Wakely
On Sat, 14 Oct 2023, 00:33 Benjamin Brock, wrote: > This is my first time submitting a patch, so my apologies if I'm > submitting incorrectly or missing something. > Thanks for contributing! I don't think this patch counts as legally significant, but if you contribute again in future you should

Re: [PATCH] libstdc++: testsuite: Enhance codecvt_unicode with tests for length()

2023-10-18 Thread Jonathan Wakely
On Tue, 17 Oct 2023 at 23:51, Dimitrij Mijoski wrote: > > We can test codecvt::length() with the same data that we test > codecvt::in(). For each call of in() we add another call to length(). > Some additional small cosmentic changes are applied. Thanks! I'll get this applied. > > libstdc++-v3/C

Re: [PATCH][_Hashtable] Fix merge

2023-10-19 Thread Jonathan Wakely
On Thursday, 19 October 2023, François Dumont wrote: > libstdc++: [_Hashtable] Do not reuse untrusted cached hash code > > On merge reuse merged node cached hash code only if we are on the same type of > hash and this hash is stateless. Usage of function pointers or std::function as > hash functor

Re: Limit Debug mode impact: overload __niter_base

2018-07-02 Thread Jonathan Wakely
On 01/07/18 21:20 +0200, François Dumont wrote:     Here is a new proposal between yours and mine.     It is still adding a function to wrap what __niter_base unwrap, I called it __nwrap_iter for this reason. But it takes advantage of Since "niter" refers to __normal_iterator I think a name

Re: [PATCH] Remove -Wabi from libstdc++ build options

2018-07-02 Thread Jonathan Wakely
On 30/06/18 20:48 +, Bernd Edlinger wrote: Hi, the -Wabi option prints a warning as follows: cc1plus: warning: -Wabi won't warn about anything [-Wabi] cc1plus: note: -Wabi warns about differences from the most up-to-date ABI, which is also used by default cc1plus: note: use e.g. -Wabi=11 to

[PATCH] Optimize std::sub_match comparisons using string_view-like type

2018-07-02 Thread Jonathan Wakely
Tested powerpc64le-linux, committed to trunk. commit b6d43fcbdd4987c3bcb48960dc05a1145deca747 Author: Jonathan Wakely Date: Mon Jul 2 18:34:09 2018 +0100 Optimize std::sub_match comparisons using string_view-like type Avoid creation of unnecessary basic_string objects by using a simplified string_view

[PATCH] P0887R1 The identity metafunction

2018-07-02 Thread Jonathan Wakely
/ explicit_instantiation.cc:New. * testsuite/20_util/type_identity/requirements/typedefs.cc: New. Tested powerpc64le-linux, committed to trunk. commit 54f6b78dc937cbaee50522bf9cd18ac4e0855d39 Author: Jonathan Wakely Date: Mon Jul 2 21:32:24 2018 +0100 P0887R1 The identity metafunction

[PATCH] P0758R1 Implicit conversion traits

2018-07-02 Thread Jonathan Wakely
e-linux, committed to trunk. commit 3cc486f1802c45d8705d8d5239170a0e1c0151c7 Author: Jonathan Wakely Date: Mon Jul 2 21:33:14 2018 +0100 P0758R1 Implicit conversion traits Extend __is_convertible_helper to also detect whether the conversion is non-throwing, for std::is_nothrow

Re: Limit Debug mode impact: overload __niter_base

2018-07-03 Thread Jonathan Wakely
_cxx::_Safe_iterator<     __gnu_cxx::__normal_iterator<>, _Sequence>&)): New. Ok to commit ? On 02/07/2018 13:57, Jonathan Wakely wrote: On 01/07/18 21:20 +0200, François Dumont wrote:     Here is a new proposal between yours and mine.     It is still adding a function to wrap wh

Re: [PATCH] When using -fprofile-generate=/some/path mangle absolute path of file (PR lto/85759).

2018-07-03 Thread Jonathan Wakely
On 16/05/18 13:53 +0200, Martin Liška wrote: On 12/21/2017 10:13 AM, Martin Liška wrote: On 12/20/2017 06:45 PM, Jakub Jelinek wrote: Another thing is that the "/" in there is wrong, so const char dir_separator_str[] = { DIR_SEPARATOR, '\0' }; char *b = concat (profile_data_prefix, dir_sepa

Re: PR libstdc++/86272 Fix undefined __glibcxx_check_insert_range2

2018-07-03 Thread Jonathan Wakely
On 03/07/18 22:11 +0200, François Dumont wrote: Hi     I plan to commit attached patch to fix the __gnu_debug::string undefined macro.     Is it ok the way I used some tests to now validate __gnu_debug::string on check-debug ? Yes, good idea. We don't want to do that for *every* basic_stri

[PATCH] P0556R3 Integral power-of-2 operations, P0553R2 Bit operations

2018-07-03 Thread Jonathan Wakely
/bitops.count/countr_zero.cc: New. Tested powerpc64le-linux, committed to trunk. commit 8e5c24b33c987bc72d429755ed90958f7931711b Author: Jonathan Wakely Date: Tue Jul 3 21:33:20 2018 +0100 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations P0553R2 is not in the C++2a

[PATCH] Remove redundant #if conditional

2018-07-03 Thread Jonathan Wakely
The whole file is guarded by the same check already. * include/bits/alloc_traits.h: Remove redundant preprocessor condition. Tested powerpc64le-linux, committed to trunk. commit 76fd352d2bccd2a7399f6693cb5c7a8e9c65274b Author: Jonathan Wakely Date: Tue Jul 3 00:26:07 2018

Re: [PATCH] P0556R3 Integral power-of-2 operations, P0553R2 Bit operations

2018-07-03 Thread Jonathan Wakely
On 03/07/18 23:40 +0200, Jakub Jelinek wrote: On Tue, Jul 03, 2018 at 10:02:47PM +0100, Jonathan Wakely wrote: +#ifndef _GLIBCXX_BIT +#define _GLIBCXX_BIT 1 + +#pragma GCC system_header + +#if __cplusplus >= 201402L + +#include +#include + +namespace std _GLIBCXX_VISIBILITY(defa

Re: [PATCH] P0556R3 Integral power-of-2 operations, P0553R2 Bit operations

2018-07-04 Thread Jonathan Wakely
On 03/07/18 23:23 +0100, Jonathan Wakely wrote: On 03/07/18 23:40 +0200, Jakub Jelinek wrote: On Tue, Jul 03, 2018 at 10:02:47PM +0100, Jonathan Wakely wrote: +#ifndef _GLIBCXX_BIT +#define _GLIBCXX_BIT 1 + +#pragma GCC system_header + +#if __cplusplus >= 201402L + +#include +#incl

Re: [PATCH] P0556R3 Integral power-of-2 operations, P0553R2 Bit operations

2018-07-04 Thread Jonathan Wakely
On 04/07/18 10:09 +0200, Jakub Jelinek wrote: On Tue, Jul 03, 2018 at 11:24:00PM +0100, Jonathan Wakely wrote: > Wouldn't it be better to use some branchless pattern that > GCC can also optimize well, like: > return (__x << __sN) | (__x >> ((-_sN) & (_Nd - 1)

[PATCH] PR libstdc++/86398 fix std::is_trivially_constructible regression

2018-07-04 Thread Jonathan Wakely
igned/requirements/typedefs_neg.cc: Likewise. I got sick of repeatedly adjusting the dg-error lines in the make_signed/make_unsigned tests so have just changed them to match any line. Tested powerpc64le-linux, committed to trunk. commit dfa577ddbb6a4161f23e61fde5ca9ca09753a4ab Author: Jonathan W

Re: [PATCH] P0556R3 Integral power-of-2 operations, P0553R2 Bit operations

2018-07-04 Thread Jonathan Wakely
On 04/07/18 10:26 +0200, Jakub Jelinek wrote: On Wed, Jul 04, 2018 at 09:14:04AM +0100, Jonathan Wakely wrote: > Unfortunately it is not correct if _Nd is not power of two. > E.g. for __sN 1, -1U % 20 is 15, not 19. > So it would need to be > return (__x << __sN) | (_

Re: [PATCH] Add experimental::sample and experimental::shuffle from N4531

2018-07-04 Thread Jonathan Wakely
On 29/06/18 10:45 +0100, Jonathan Wakely wrote: On 29/06/18 09:39 +0200, Christophe Lyon wrote: On Fri, 29 Jun 2018 at 09:21, Jonathan Wakely wrote: On 29/06/18 08:55 +0200, Christophe Lyon wrote: On Mon, 25 Jun 2018 at 18:23, Jonathan Wakely wrote: The additions to were added in 2015

[PATCH] P0458R2 Checking for Existence of an Element in Associative Containers

2018-07-04 Thread Jonathan Wakely
: New. * testsuite/23_containers/unordered_multiset/operations/contains.cc: New. * testsuite/23_containers/unordered_set/operations/contains.cc: New. Tested powerpc64le-linux, committed to trunk. commit c38607c44696e07f44f56abf339f5453b04a5e70 Author: Jonathan Wakely

[PATCH] P0646R1 Improving the Return Value of Erase-Like Algorithms I

2018-07-04 Thread Jonathan Wakely
. * testsuite/23_containers/forward_list/operations/ unique_cxx20_return.cc: New. Tested powerpc64le-linux, committed to trunk. commit 438e6398493708d2fb13766c9dff5305ebb98eec Author: Jonathan Wakely Date: Wed Jul 4 20:13:34 2018 +0100 P0646R1 Improving the Return Value of Erase

[wwwdocs] Document more C++2a support in libstdc++

2018-07-04 Thread Jonathan Wakely
Committed to CVS. ? htdocs/gcc-9/.changes.html.swp Index: htdocs/gcc-9/changes.html === RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-9/changes.html,v retrieving revision 1.10 diff -u -r1.10 changes.html --- htdocs/gcc-9/changes.html 2 Jul

Re: [wwwdocs] Document more C++2a support in libstdc++

2018-07-04 Thread Jonathan Wakely
On 04/07/18 16:19 -0400, Tim Song wrote: On Wed, Jul 4, 2018 at 4:17 PM, Jonathan Wakely wrote: + std::is_trivially_convertible, and s/trivially/nothrow/ Oops, thanks - fixed by this patch, also committed. Index: htdocs/gcc-9/changes.html

Re: Enhance __gnu_debug::string debug assertion

2018-07-05 Thread Jonathan Wakely
On 05/07/18 07:28 +0200, François Dumont wrote:     This patch improves the assertion message generated in 2 __gnu_debug::string constructors giving the assertion context thanks to the __FUNCTION__ macro. Was: /home/fdt/dev/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/string:56:

[PATCH] PR libstdc++/58265 implement LWG 2063 for COW strings

2018-07-05 Thread Jonathan Wakely
c_string/cons/wchar_t/ noexcept_move_construct.cc: Likewise. Tested powerpc64le-linux, committed to trunk. commit 926b3b642595383cb4abfbeb3586eecc721c1935 Author: Jonathan Wakely Date: Thu Jul 5 15:12:06 2018 +0100 PR libstdc++/58265 implement LWG 2063 for COW strings For COW strings th

Re: [PATCH] PR libstdc++/58265 implement LWG 2063 for COW strings

2018-07-05 Thread Jonathan Wakely
On 05/07/18 16:55 +0100, Jonathan Wakely wrote: For COW strings the default constructor does not allocate when _GLIBCXX_FULLY_DYNAMIC_STRING == 0, so can be noexcept. The move constructor and swap do not allocate when the allocators are equal, so add conditional noexcept using allocator_traits

[PATCH] Add xfail-if to some tests that fail with COW strings

2018-07-05 Thread Jonathan Wakely
/requirements/ explicit_instantiation/debug.cc: Likewise. Tested powerpc64le-linux, committed to trunk. commit 643a1bb749c54ecc5faed9c675d7f4a29cfbea6a Author: Jonathan Wakely Date: Thu Jul 5 17:44:09 2018 +0100 Add xfail-if to some tests that fail with COW strings These tests

[PATCH] PR libstdc++/85831 define move constructors and operators for exceptions

2018-07-05 Thread Jonathan Wakely
. * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and assignment operators are defined. Tested powerpc64le-linux, committed to trunk. commit cdf98fe7aeb8f7815daed0d30709395ef2d34d7a Author: Jonathan Wakely Date: Thu Jul 5 12:09:48 2018 +0100 PR libstdc++/85831 define move

[PATCH] include/std/variant (__accepted_index): Use void_t.

2018-07-06 Thread Jonathan Wakely
Tested powerpc64le-linux, committed to trunk. commit d66ad3c7feea986bfb95543e07b7063931d97e96 Author: Jonathan Wakely Date: Fri Jul 6 09:58:12 2018 +0100 * include/std/variant (__accepted_index): Use void_t. diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include

[PATCH] P0935R0 Eradicating unnecessarily explicit default constructors

2018-07-06 Thread Jonathan Wakely
lt.cc: New. * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New. * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New. Tested powerpc64le-linux, committed to trunk. commit 650035269ded698f16e66fa04f8d21dcb1b94fa8 Author: Jonathan Wakely Date: Fri Jul 6 11:38:57 2018 +0100

[PATCH] Simplify linker script patterns for std::exception_ptr

2018-07-06 Thread Jonathan Wakely
* config/abi/pre/gnu.ver: Use wildcards to combine related patterns. Tested x86_64-linux and powerpc64le-linux, committed to trunk. commit 6ae49a85e8e83390225aae7dbbe01518005cf34f Author: Jonathan Wakely Date: Fri Jul 6 13:40:00 2018 +0100 Simplify linker script patterns for std

[PATCH] PR libstdc++/84928 use std::move in algorithms

2018-07-06 Thread Jonathan Wakely
. * testsuite/26_numerics/inner_product/lwg2055.cc: New test. * testsuite/26_numerics/partial_sum/lwg2055.cc: New test. Tested powerpc64le-linux, committed to trunk. commit 1a98726ac77827d3978d694f33ef5183ff3c2def Author: Jonathan Wakely Date: Fri Jul 6 14:58:03 2018 +0100 PR libstdc

Re: [PATCH] S/390: libstdc++: 64 and 32 bit baseline update

2018-07-16 Thread Jonathan Wakely
On 16/07/18 09:58 +0200, Andreas Krebbel wrote: On 07/13/2018 04:58 PM, Andreas Schwab wrote: On Jul 13 2018, Andreas Krebbel wrote: @@ -5645,3 +5657,5 @@ OBJECT:8:_ZTTSi@@GLIBCXX_3.4 OBJECT:8:_ZTTSo@@GLIBCXX_3.4 OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@GLIBCXX_3.4 OBJECT:8:_ZT

[PATCH] PR libstdc++/86537 remove less> partial specialization

2018-07-16 Thread Jonathan Wakely
* testsuite/20_util/shared_ptr/comparison/86537.cc: New test. Tested powerpc64le-linux, committed to trunk. commit 1c48999500e277c2ff1e742214857faef842f80c Author: Jonathan Wakely Date: Mon Jul 16 16:52:19 2018 +0100 PR libstdc++/86537 remove less> partial specialization The standa

[PATCH] scripts/create_testsuite_files: Fix typo in comment.

2018-07-16 Thread Jonathan Wakely
Committed to trunk. commit 2a123b20c5bbb6b54d157281e2dbe546a28086f5 Author: Jonathan Wakely Date: Mon Jul 16 18:41:31 2018 +0100 * scripts/create_testsuite_files: Fix typo in comment. diff --git a/libstdc++-v3/scripts/create_testsuite_files b/libstdc++-v3/scripts

Re: [PATCH] Add baseline symbols for riscv64-linux-gnu

2018-07-16 Thread Jonathan Wakely
On 16/07/18 16:37 -0700, Jim Wilson wrote: On Mon, Jul 16, 2018 at 3:24 AM, Andreas Schwab wrote: * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file. I'm not familiar with the details of these baseline symbol files. When I try running "make new-abi-baseline" on my Fe

[PATCH] Remove unused explicit instantiation of __bind_simple

2018-07-17 Thread Jonathan Wakely
are not required by exported symbols. Tested powerpc64le-linux, committed to trunk. commit 8c615f0dcb66beed4cf0d4d17f4ed640664932cb Author: Jonathan Wakely Date: Tue Jul 17 13:37:00 2018 +0100 Remove unused explicit instantiation of __bind_simple The explicit instantiat

[PATCH] PR libstdc++/86450 use -Wabi=2 and simplify -Werror use

2018-07-17 Thread Jonathan Wakely
d to trunk. commit 0e99fd82ce20499c4da0d0950e7197f14d45311f Author: Jonathan Wakely Date: Tue Jul 17 00:59:17 2018 +0100 PR libstdc++/86450 use -Wabi=2 and simplify -Werror use Use -Wabi=2 to fix warnings about -Wabi having no effect on its own. This requires suppressing two warnings in src/c++

Re: [PATCH] Use __builtin_memmove for trivially copy assignable types

2018-07-19 Thread Jonathan Wakely
On 19/07/18 07:59 -0400, Glen Fernandes wrote: Updated patch to simplify the helper trait, and to include instead of in the unit test for copy_uninitialized: Use __builtin_memmove for trivially copy assignable types 2018-07-19 Glen Joseph Fernandes * include/bits/stl_algobase.h (__i

Re: [PATCH] Use __builtin_memmove for trivially copy assignable types

2018-07-19 Thread Jonathan Wakely
On 19/07/18 10:01 -0400, Glen Fernandes wrote: On Thu, Jul 19, 2018 at 9:25 AM Jonathan Wakely wrote: Sorry for the delay in reviewing this properly, as I've only just realised that this introduces undefined behaviour, doesn't it? It's undefined to use memmove for a type that i

Re: [PATCH] Use __builtin_memmove for trivially copy assignable types

2018-07-19 Thread Jonathan Wakely
On 19/07/18 10:32 -0400, Glen Fernandes wrote: On Thu, Jul 19, 2018 at 10:01 AM Glen Fernandes wrote: I was still unclear about that, but I forwarded you an e-mail from Marshall with his answer when I asked whether libc++'s use of TriviallyCopyAssignable here was incorrect. Let me know if it ap

[PATCH] Simplify the base characteristics for some type traits

2018-07-19 Thread Jonathan Wakely
_impl): Remove redundant use of is_move_assignable. (is_trivially_destructible): Use __bool_constant. * testsuite/20_util/is_trivially_assignable/value.cc: Add some more tests for scalar types. Tested powerpc64le-linux. commit 82960cb6e64ca78b53fb799318087cb23b942079 Author: Jonatha

Re: [PATCH] Use __builtin_memmove for trivially copy assignable types

2018-07-19 Thread Jonathan Wakely
On 19/07/18 11:04 -0400, Glen Fernandes wrote: On Thu, Jul 19, 2018 at 10:40 AM Jonathan Wakely wrote: On 19/07/18 10:32 -0400, Glen Fernandes wrote: >Attached: patch.txt >Use __builtin_memmove for trivially copyable types >2018-07-19 Glen Joseph Fernandes >* include/bits/st

Re: [PATCH] Simplify the base characteristics for some type traits

2018-07-19 Thread Jonathan Wakely
On 19/07/18 21:40 +0300, Ville Voutilainen wrote: On 19 July 2018 at 20:18, Jonathan Wakely wrote: This removes some seemingly redundant conditions from a few traits. If __is_trivially_assignable correctly checks the assignable condition as well as triviality, then we don't need is_assig

Re: Optimization for std::to_string()

2018-07-20 Thread Jonathan Wakely
On 20/07/18 12:44 +0300, niXman wrote: Hi, Patch in attachments. Thanks. How did you verify it's an optimization? The to_string functions always pass at least __n=16 to __to_xstring, which is larger than the SSO buffer in std::__cxx11::string, and so forces a memory allocation. The curren

Re: [PATCH 1/2] condition_variable: Report early wakeup of wait_until as no_timeout

2018-07-20 Thread Jonathan Wakely
On 10/07/18 11:09 +0100, Mike Crowe wrote: As currently implemented, condition_variable always ultimately waits against std::chrono::system_clock. This clock can be changed in arbitrary ways by the user which may result in us waking up too early or too late when measured against the caller-suppli

Re: [PATCH] Explicitly mark _S_ti() as default visibility to work around clang -fvisibility-inlines-hidden bug

2018-07-20 Thread Jonathan Wakely
On 19/07/18 16:58 -0700, Fāng-ruì Sòng via libstdc++ wrote: clang (including trunk and many older versions) incorrectly marks static local variables (__tag) hidden when -fvisibility-inlines-hidden is used. % cat b.cc #include std::shared_ptr foo(int x) { return std::make_shared(x); } % g++-8 -

[PATCH] PR libstdc++/86603 Move __cpp_lib_list_remove_return_type macro

2018-07-20 Thread Jonathan Wakely
This should only be defined for C++2a not C++17. PR libstdc++/86603 * include/std/version: Move __cpp_lib_list_remove_return_type macro. Tested powerpc64le-linux, committed to trunk. commit c457458395791eff165618b7bd04f6a71d99188d Author: Jonathan Wakely Date: Fri Jul 20 11

Re: [PATCH 1/2] condition_variable: Report early wakeup of wait_until as no_timeout

2018-07-20 Thread Jonathan Wakely
On 20/07/18 12:30 +0100, Mike Crowe wrote: On Friday 20 July 2018 at 11:53:38 +0100, Jonathan Wakely wrote: On 10/07/18 11:09 +0100, Mike Crowe wrote: > As currently implemented, condition_variable always ultimately waits > against std::chrono::system_clock. This clock can be chan

[PATCH] PR libstdc++/86595 add missing noexcept

2018-07-20 Thread Jonathan Wakely
PR libstdc++/86595 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add noexcept. Tested powerpc64le-linux, committed to trunk. commit c857adf35f9849ddda1148c65813aba86acb5c6a Author: Jonathan Wakely Date: Fri Jul 20 12:35:05 2018 +0100

Re: Optimization for std::to_string()

2018-07-20 Thread Jonathan Wakely
On 20/07/18 13:51 +0300, niXman wrote: Jonathan Wakely 2018-07-20 13:05: On 20/07/18 12:44 +0300, niXman wrote: Thanks. How did you verify it's an optimization? Optimization is that there is no superfluous copying into string. The to_string functions always pass at least __n=

[PATCH] PR libstdc++/70940 optimize pmr::resource_adaptor for allocators using malloc

2018-07-23 Thread Jonathan Wakely
f pmr::new_delete_resource() just uses aligned new, but that isn't available in C++14). Tested powerpc64le-linux, committed to trunk. Rainer, this is another place where alignof(max_align_t) gets encoded into the ABI, so is affected by PR 77691 as well. commit cb814378aad13172dbb4e0630587638e946657f4 Author

[PATCH] Reorder conditions in uses-allocator construction helper

2018-07-24 Thread Jonathan Wakely
The erased_type condition is only true for code using the Library Fundamentals TS, so assume it's less common and only check it after checking for convertibility. This does mean for types using erased_type the more expensive convertibility check is done first, but such types are rare. *

[PATCH] PR libstdc++/70966 fix lifetime bug for default resource

2018-07-24 Thread Jonathan Wakely
placement new to create an object with dynamic storage duration. Tested powerpc64le-linux, committed to trunk. commit 5e51f3630b506d993737c95c65b251acaa433076 Author: Jonathan Wakely Date: Mon Jul 23 23:30:38 2018 +0100 PR libstdc++/70966 fix lifetime bug for default resource

[PATCH] Make __resource_adaptor_imp usable with C++17 memory_resource

2018-07-24 Thread Jonathan Wakely
constructor and copy assignment operator as defaulted. Tested powerpc64le-linux, committed to trunk. commit ce04fa1c00b40a938cc25a264836a2e30149056e Author: Jonathan Wakely Date: Tue Jul 24 12:24:53 2018 +0100 Make __resource_adaptor_imp usable with C++17 memory_resource By making the

[PATCH] Minor refactoring in header

2018-07-24 Thread Jonathan Wakely
b5cb477ecf9e98d10f4608bd2d94f57ee3bd48e5 Author: Jonathan Wakely Date: Tue Jul 24 14:10:01 2018 +0100 Minor refactoring in header * include/std/bit (__countl_zero, __countr_zero, __popcount): Use local variables for number of digits instead of type aliases. (__log2p1

[PATCH] PR libstdc++/86658 fix __niter_wrap to not copy invalid iterators

2018-07-24 Thread Jonathan Wakely
d iterators. * testsuite/25_algorithms/copy/86658.cc: New test. Tested powerpc64le-linux, committed to trunk. commit e2dcaf432a8fa6e8e9d96b03003ece28fa3f1ca6 Author: Jonathan Wakely Date: Tue Jul 24 21:33:54 2018 +0100 PR libstdc++/86658 fix __niter_wrap to not copy invali

[PATCH] Add initial version of C++17 header

2018-07-24 Thread Jonathan Wakely
e for testing. (__gnu_test::default_resource_mgr): Define RAII helper for changing default resource. Tested powerpc64le-linux, committed to trunk. commit 05c7ae80dbd59fcef5d583eac15181afbc07a116 Author: Jonathan Wakely Date: Tue Jul 24 14:19:19 2018 +0100 Add initial version

[PATCH] Move std::unique_lock definition to a separate header

2018-07-25 Thread Jonathan Wakely
ck_until) (unique_lock::try_lock_for): Define only when is usable. * include/std/condition_variable: Include . * include/std/mutex: Likewise. Tested powerpc64le-linux, committed to trunk. commit c84285a3a0e3d252d3f8e1ffec6dd56997a87fe8 Author: Jonathan Wakely Date: Wed Jul 25

Re: [PATCH] Add initial version of C++17 header

2018-07-25 Thread Jonathan Wakely
On 24/07/18 22:12 +0100, Jonathan Wakely wrote: This is missing the synchronized_pool_resource and unsynchronized_pool_resource classes but is otherwise complete. This is a new implementation, not based on the existing code in , but memory_resource and polymorphic_allocator ended up looking

Re: optimize std::vector move assignment

2018-07-25 Thread Jonathan Wakely
On 25/07/18 14:38 +0200, Marc Glisse wrote: Hello, I talked about this last year (https://gcc.gnu.org/ml/gcc-patches/2017-04/msg01063.html and thread), this tweaks std::vector move assignment to help gcc generate better code for it. Ah yes, thank for revisiting it. For this code #include

Re: [PATCH] Make __resource_adaptor_imp usable with C++17 memory_resource

2018-07-25 Thread Jonathan Wakely
On 24/07/18 14:06 +0100, Jonathan Wakely wrote: By making the memory_resource base class a template parameter the __resource_adaptor_imp can be used to adapt an allocator into a std::pmr::memory_resource instead of experimental::pmr::memory_resource. No uses for this in the library but somebody

Re: Share ebo helper throughout lib

2018-07-25 Thread Jonathan Wakely
On 25/07/18 21:42 +0200, François Dumont wrote: Hi     It has already been noticed that there are 2 ebo helpers in the lib. Here is a patch to use 1.     * include/bits/ebo_helper.h: New.     * include/Makefile.am: Add latter.     * include/Makefile.in: Regenerate.     * include/bits/hashtab

Re: Share ebo helper throughout lib

2018-07-25 Thread Jonathan Wakely
On 25/07/18 21:53 +0200, Marc Glisse wrote: On Wed, 25 Jul 2018, François Dumont wrote:     It has already been noticed that there are 2 ebo helpers in the lib. Here is a patch to use 1.     * include/bits/ebo_helper.h: New.     * include/Makefile.am: Add latter.     * include/Makefile.in: R

  1   2   3   4   5   6   7   8   9   10   >