public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
@ 2021-11-04 17:29 redi at gcc dot gnu.org
  2021-11-04 17:29 ` [Bug libstdc++/103086] " redi at gcc dot gnu.org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-04 17:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

            Bug ID: 103086
           Summary: [11/12 Regression] std::unique_ptr printer gets
                    confused by [[no_unique_address]] in tuple
           Product: gcc
           Version: 11.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

When using GDB 11 or 12 and GCC 11 or 12 the pretty printer for std::unique_ptr
shows the value of the deleter instead of the pointer:

$1 = std::unique_ptr<datum> = {get() = {<No data fields>}}

I filed this as https://sourceware.org/bugzilla/show_bug.cgi?id=28480 but with
Bruno's help we realised it's actually a libstdc++ printer bug.

The problem is that since std::tuple started using [[no_unique_address]] the
tuple<T*, default_delete<T>> object has two _M_head_impl subobjects, in
different base classes. That means this printer code is ambiguous:

        tuple_head_type = tuple_impl_type.fields()[1].type   # _Head_base
        head_field = tuple_head_type.fields()[0]
        if head_field.name == '_M_head_impl':
            self.pointer = tuple_member['_M_head_impl']

In older versions of GDB it happened to work by chance, because GDB returned
the last _M_head_impl member and std::tuple's base classes are stored in
reverse order, so the last one was the T* element of the tuple. Since GDB 11 it
returns the first _M_head_impl, which is probably more sensible, but now the
printer gets the default_delete<T> element.

The fix is for the printer to stop using an ambiguous field name and cast the
tuple to the right base class before accessing the _M_head_impl member:

--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -258,7 +258,7 @@ class UniquePointerPrinter:
         tuple_head_type = tuple_impl_type.fields()[1].type   # _Head_base
         head_field = tuple_head_type.fields()[0]
         if head_field.name == '_M_head_impl':
-            self.pointer = tuple_member['_M_head_impl']
+            self.pointer = tuple_member.cast(tuple_head_type)['_M_head_impl']
         elif head_field.is_base_class:
             self.pointer = tuple_member.cast(head_field.type)
         else:

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
@ 2021-11-04 17:29 ` redi at gcc dot gnu.org
  2021-11-04 21:30 ` redi at gcc dot gnu.org
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-04 17:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |11.2.1, 12.0
   Target Milestone|---                         |11.3
      Known to work|                            |10.3.0
   Last reconfirmed|                            |2021-11-04
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |redi at gcc dot gnu.org
     Ever confirmed|0                           |1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
  2021-11-04 17:29 ` [Bug libstdc++/103086] " redi at gcc dot gnu.org
@ 2021-11-04 21:30 ` redi at gcc dot gnu.org
  2021-11-04 23:06 ` cvs-commit at gcc dot gnu.org
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-04 21:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This affects the filesystem::path printer too:

      impl = self.val['_M_cmpts']['_M_impl']['_M_t']['_M_t']['_M_head_impl']

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
  2021-11-04 17:29 ` [Bug libstdc++/103086] " redi at gcc dot gnu.org
  2021-11-04 21:30 ` redi at gcc dot gnu.org
@ 2021-11-04 23:06 ` cvs-commit at gcc dot gnu.org
  2021-11-04 23:10 ` redi at gcc dot gnu.org
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-04 23:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

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

commit r12-4928-ga634928f5c8a281442ac8f5fb1636aed048ed72c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 4 22:50:02 2021 +0000

    libstdc++: Fix pretty printing of std::unique_ptr [PR103086]

    Since std::tuple started using [[no_unique_address]] the tuple<T*, D>
    member of std::unique_ptr<T, D> has two _M_head_impl subobjects, in
    different base classes. That means this printer code is ambiguous:

        tuple_head_type = tuple_impl_type.fields()[1].type   # _Head_base
        head_field = tuple_head_type.fields()[0]
        if head_field.name == '_M_head_impl':
            self.pointer = tuple_member['_M_head_impl']

    In older versions of GDB it happened to work by chance, because GDB
    returned the last _M_head_impl member and std::tuple's base classes are
    stored in reverse order, so the last one was the T* element of the
    tuple. Since GDB 11 it returns the first _M_head_impl, which is the
    deleter element.

    The fix is for the printer to stop using an ambiguous field name and
    cast the tuple to the correct base class before accessing the
    _M_head_impl member.

    Instead of fixing this in both UniquePointerPrinter and StdPathPrinter a
    new unique_ptr_get function is defined to do it correctly. That is
    defined in terms of new tuple_get and _tuple_impl_get functions.

    It would be possible to reuse _tuple_impl_get to access each element in
    StdTuplePrinter._iterator.__next__, but that already does the correct
    casting, and wouldn't be much simpler anyway.

    libstdc++-v3/ChangeLog:

            PR libstdc++/103086
            * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
            for accessing the tuple element stored in a _Tuple_impl node.
            (tuple_get): New function for accessing a tuple element.
            (unique_ptr_get): New function for accessing a unique_ptr.
            (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
            * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
            tuple to its base class before accessing _M_head_impl.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-11-04 23:06 ` cvs-commit at gcc dot gnu.org
@ 2021-11-04 23:10 ` redi at gcc dot gnu.org
  2021-11-05  7:24 ` [Bug libstdc++/103086] [11 " rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-04 23:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Fixed on trunk so far.

The fix needs to be backported to gcc-11 because std::tuple uses
[[no_unique_address]] there, so the bug is present.

I think it's also present on older branches, but would only show up for a
unique_ptr with a non-empty pointer and non-empty deleter. I don't think we
test that, but I will check if it fails with GDB 11 and backport the fix if
needed.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-11-04 23:10 ` redi at gcc dot gnu.org
@ 2021-11-05  7:24 ` rguenth at gcc dot gnu.org
  2021-11-23 17:33 ` redi at gcc dot gnu.org
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-11-05  7:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-11-05  7:24 ` [Bug libstdc++/103086] [11 " rguenth at gcc dot gnu.org
@ 2021-11-23 17:33 ` redi at gcc dot gnu.org
  2021-11-23 21:18 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-23 17:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The branches all get this testcase wrong:

#include <memory>
#include "../util/testsuite_allocator.h"

struct Deleter
{
  int deleter_member = -1;
  using pointer = __gnu_test::NullablePointer<int*>;
  void operator()(pointer) const noexcept { }
};

int main()
{
  std::unique_ptr<int, Deleter> p;
  return 0;
}

I'll add that test, as well as backporting the fix from trunk.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-11-23 17:33 ` redi at gcc dot gnu.org
@ 2021-11-23 21:18 ` cvs-commit at gcc dot gnu.org
  2021-11-23 21:18 ` redi at gcc dot gnu.org
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-23 21:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

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

commit r11-9271-gfa4a8f3faaa1172b103c6a148a7830e7e6375cc3
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 4 22:50:02 2021 +0000

    libstdc++: Fix pretty printing of std::unique_ptr [PR103086]

    Since std::tuple started using [[no_unique_address]] the tuple<T*, D>
    member of std::unique_ptr<T, D> has two _M_head_impl subobjects, in
    different base classes. That means this printer code is ambiguous:

        tuple_head_type = tuple_impl_type.fields()[1].type   # _Head_base
        head_field = tuple_head_type.fields()[0]
        if head_field.name == '_M_head_impl':
            self.pointer = tuple_member['_M_head_impl']

    In older versions of GDB it happened to work by chance, because GDB
    returned the last _M_head_impl member and std::tuple's base classes are
    stored in reverse order, so the last one was the T* element of the
    tuple. Since GDB 11 it returns the first _M_head_impl, which is the
    deleter element.

    The fix is for the printer to stop using an ambiguous field name and
    cast the tuple to the correct base class before accessing the
    _M_head_impl member.

    Instead of fixing this in both UniquePointerPrinter and StdPathPrinter a
    new unique_ptr_get function is defined to do it correctly. That is
    defined in terms of new tuple_get and _tuple_impl_get functions.

    It would be possible to reuse _tuple_impl_get to access each element in
    StdTuplePrinter._iterator.__next__, but that already does the correct
    casting, and wouldn't be much simpler anyway.

    libstdc++-v3/ChangeLog:

            PR libstdc++/103086
            * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
            for accessing the tuple element stored in a _Tuple_impl node.
            (tuple_get): New function for accessing a tuple element.
            (unique_ptr_get): New function for accessing a unique_ptr.
            (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
            * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
            tuple to its base class before accessing _M_head_impl.

    (cherry picked from commit a634928f5c8a281442ac8f5fb1636aed048ed72c)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-11-23 21:18 ` cvs-commit at gcc dot gnu.org
@ 2021-11-23 21:18 ` redi at gcc dot gnu.org
  2021-11-23 21:41 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-23 21:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The regression caused by [[no_unique_address] and ambiguous field accesses is
fixed. I'll backport it to fix the latent bug on the other branches.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-11-23 21:18 ` redi at gcc dot gnu.org
@ 2021-11-23 21:41 ` cvs-commit at gcc dot gnu.org
  2021-11-24 11:50 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-23 21:41 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

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

commit r12-5482-gc59ec55c3459fba619e05ee7f59480b71e85ffd7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 21:35:40 2021 +0000

    libstdc++: Add another testcase for std::unique_ptr printer [PR103086]

    libstdc++-v3/ChangeLog:

            PR libstdc++/103086
            * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
            with non-empty pointer and non-empty deleter.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2021-11-23 21:41 ` cvs-commit at gcc dot gnu.org
@ 2021-11-24 11:50 ` cvs-commit at gcc dot gnu.org
  2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-24 11:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

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

commit r11-9275-gfa1ea255dba2d44ff22e434ed3d7778e8aaf4b91
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 21:35:40 2021 +0000

    libstdc++: Add another testcase for std::unique_ptr printer [PR103086]

    libstdc++-v3/ChangeLog:

            PR libstdc++/103086
            * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
            with non-empty pointer and non-empty deleter.

    (cherry picked from commit c59ec55c3459fba619e05ee7f59480b71e85ffd7)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2021-11-24 11:50 ` cvs-commit at gcc dot gnu.org
@ 2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
  2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
  2022-01-05 17:56 ` redi at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-01-05 17:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

https://gcc.gnu.org/g:5400112aa94163b1e94404e74b3000779d24303b

commit r10-10374-g5400112aa94163b1e94404e74b3000779d24303b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 4 22:50:02 2021 +0000

    libstdc++: Fix pretty printing of std::unique_ptr [PR103086]

    Since std::tuple started using [[no_unique_address]] the tuple<T*, D>
    member of std::unique_ptr<T, D> has two _M_head_impl subobjects, in
    different base classes. That means this printer code is ambiguous:

        tuple_head_type = tuple_impl_type.fields()[1].type   # _Head_base
        head_field = tuple_head_type.fields()[0]
        if head_field.name == '_M_head_impl':
            self.pointer = tuple_member['_M_head_impl']

    In older versions of GDB it happened to work by chance, because GDB
    returned the last _M_head_impl member and std::tuple's base classes are
    stored in reverse order, so the last one was the T* element of the
    tuple. Since GDB 11 it returns the first _M_head_impl, which is the
    deleter element.

    The fix is for the printer to stop using an ambiguous field name and
    cast the tuple to the correct base class before accessing the
    _M_head_impl member.

    Instead of fixing this in both UniquePointerPrinter and StdPathPrinter a
    new unique_ptr_get function is defined to do it correctly. That is
    defined in terms of new tuple_get and _tuple_impl_get functions.

    It would be possible to reuse _tuple_impl_get to access each element in
    StdTuplePrinter._iterator.__next__, but that already does the correct
    casting, and wouldn't be much simpler anyway.

    libstdc++-v3/ChangeLog:

            PR libstdc++/103086
            * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
            for accessing the tuple element stored in a _Tuple_impl node.
            (tuple_get): New function for accessing a tuple element.
            (unique_ptr_get): New function for accessing a unique_ptr.
            (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
            * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
            tuple to its base class before accessing _M_head_impl.

    (cherry picked from commit a634928f5c8a281442ac8f5fb1636aed048ed72c)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
@ 2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
  2022-01-05 17:56 ` redi at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-01-05 17:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

https://gcc.gnu.org/g:865ad53c49953f2950901aaf45b34a38841df019

commit r10-10375-g865ad53c49953f2950901aaf45b34a38841df019
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 23 21:35:40 2021 +0000

    libstdc++: Add another testcase for std::unique_ptr printer [PR103086]

    libstdc++-v3/ChangeLog:

            PR libstdc++/103086
            * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
            with non-empty pointer and non-empty deleter.

    (cherry picked from commit c59ec55c3459fba619e05ee7f59480b71e85ffd7)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug libstdc++/103086] [11 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple
  2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
@ 2022-01-05 17:56 ` redi at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: redi at gcc dot gnu.org @ 2022-01-05 17:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103086

--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Also fixed for 10.4 now.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-01-05 17:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-04 17:29 [Bug libstdc++/103086] New: [11/12 Regression] std::unique_ptr printer gets confused by [[no_unique_address]] in tuple redi at gcc dot gnu.org
2021-11-04 17:29 ` [Bug libstdc++/103086] " redi at gcc dot gnu.org
2021-11-04 21:30 ` redi at gcc dot gnu.org
2021-11-04 23:06 ` cvs-commit at gcc dot gnu.org
2021-11-04 23:10 ` redi at gcc dot gnu.org
2021-11-05  7:24 ` [Bug libstdc++/103086] [11 " rguenth at gcc dot gnu.org
2021-11-23 17:33 ` redi at gcc dot gnu.org
2021-11-23 21:18 ` cvs-commit at gcc dot gnu.org
2021-11-23 21:18 ` redi at gcc dot gnu.org
2021-11-23 21:41 ` cvs-commit at gcc dot gnu.org
2021-11-24 11:50 ` cvs-commit at gcc dot gnu.org
2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
2022-01-05 17:53 ` cvs-commit at gcc dot gnu.org
2022-01-05 17:56 ` redi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).