public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected
@ 2020-08-12 16:15 cuzdav at gmail dot com
  2020-08-14  0:19 ` [Bug c++/96592] " johnilacqua at hotmail dot com
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: cuzdav at gmail dot com @ 2020-08-12 16:15 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 96592
           Summary: Tuple element w/ member reference to incomplete
                    template type rejected
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cuzdav at gmail dot com
  Target Milestone: ---

Created attachment 49049
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49049&action=edit
source as shown in preview, g++10.2 preprocessed code, and the error messages

This code seems a regression introduced in g++ 10.1, is still in 10.2 and
remains in the trunk.  It works on 9.x and as far back as g++ 6, plus all
versions of clang since 6, icc, msvc, etc.

There are many independent changes that can make it work, including: 
  * making SomeQuery constructor a template constructor (on SessionU)
  * changing the reference to a pointer
  * explicitly declaring Session as an incomplete type and not using
    templates


#include <tuple>

template <typename SessionT>
struct SomeQuery {
    SessionT& session_;
    SomeQuery(SessionT& session) : session_(session) {}
};

template <typename SessionT>
struct Handler {
    std::tuple<SomeQuery<SessionT>> queries_;
    Handler(SessionT& session) : queries_(session) {}
};

struct Session {
    Handler<Session> handler_;
    Session() : handler_{*this} {}
};

int main() {
    Session session;
}


It looks like the tuple class is doing some concept checking that isn't quite
working, but I haven't dug deeply enough to determine if it's a library or
underlying compiler issue.

Live example on Compiler Explorer
https://godbolt.org/z/7naPMx

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

* [Bug c++/96592] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
@ 2020-08-14  0:19 ` johnilacqua at hotmail dot com
  2020-08-17 21:51 ` [Bug libstdc++/96592] [10/11 Regression] " mpolacek at gcc dot gnu.org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: johnilacqua at hotmail dot com @ 2020-08-14  0:19 UTC (permalink / raw)
  To: gcc-bugs

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

John <johnilacqua at hotmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |johnilacqua at hotmail dot com

--- Comment #1 from John <johnilacqua at hotmail dot com> ---
I was about to create a bug report for what appears to be the same issue.
Here's another simple reproducer:

#include <tuple>

template <typename T>
class DependsOnT
{
public:
    DependsOnT(T&) {}
};

class Test
{
public:
    Test() : test_{*this} {}

private:
    std::tuple<DependsOnT<Test>> test_;
};

It seems to depend entirely on the reference in the constructor of DependsOnT -
if I change that to a pointer it compiles without error.

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

* [Bug libstdc++/96592] [10/11 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
  2020-08-14  0:19 ` [Bug c++/96592] " johnilacqua at hotmail dot com
@ 2020-08-17 21:51 ` mpolacek at gcc dot gnu.org
  2020-09-03 15:18 ` redi at gcc dot gnu.org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2020-08-17 21:51 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2020-08-17
           Keywords|                            |rejects-valid
     Ever confirmed|0                           |1
   Target Milestone|---                         |10.3
          Component|c++                         |libstdc++
                 CC|                            |mpolacek at gcc dot gnu.org
            Summary|Tuple element w/ member     |[10/11 Regression] Tuple
                   |reference to incomplete     |element w/ member reference
                   |template type rejected      |to incomplete template type
                   |                            |rejected
             Status|UNCONFIRMED                 |NEW

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Started with r10-908.

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

* [Bug libstdc++/96592] [10/11 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
  2020-08-14  0:19 ` [Bug c++/96592] " johnilacqua at hotmail dot com
  2020-08-17 21:51 ` [Bug libstdc++/96592] [10/11 Regression] " mpolacek at gcc dot gnu.org
@ 2020-09-03 15:18 ` redi at gcc dot gnu.org
  2020-09-03 15:37 ` cvs-commit at gcc dot gnu.org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2020-09-03 15:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I think this is a compiler bug. The same libstdc++ code compiles OK with clang.

The error doesn't really make any sense. std::is_constructible is certainly not
incomplete.

In file included from /home/jwakely/gcc/10/include/c++/10.2.1/bits/move.h:57,
                 from
/home/jwakely/gcc/10/include/c++/10.2.1/bits/stl_pair.h:59,
                 from /home/jwakely/gcc/10/include/c++/10.2.1/utility:70,
                 from /home/jwakely/gcc/10/include/c++/10.2.1/tuple:38,
                 from 96592-0.C:1:
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits: In instantiation of
'struct std::__and_<std::is_constructible<SomeQuery<Session>, const
SomeQuery<Session>&>, std::__not_<std::__and_<std::is_convertible<const
SomeQuery<Session>&, SomeQuery<Session> > > > >':
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:487:7:   required from 'static
constexpr bool std::_TupleConstraints<<anonymous>,
_Types>::__is_explicitly_constructible() [with _UTypes = {const
SomeQuery<Session>&}; bool <anonymous> = true; _Types = {SomeQuery<Session>}]'
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:549:65:   required by
substitution of 'template<bool _NotEmpty, typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_explicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> > constexpr std::tuple<SomeQuery<Session>
>::tuple(const SomeQuery<Session>&) [with bool _NotEmpty = true; typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_explicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> = <missing>]'
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:901:30:   required from
'struct std::__is_constructible_impl<SomeQuery<Session>, const
SomeQuery<Session>&>'
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:906:12:   required from
'struct std::is_constructible<SomeQuery<Session>, const SomeQuery<Session>&>'
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:138:12:   required from
'struct std::__and_<std::is_constructible<SomeQuery<Session>, const
SomeQuery<Session>&>, std::is_convertible<const SomeQuery<Session>&,
SomeQuery<Session> > >'
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:475:7:   required from 'static
constexpr bool std::_TupleConstraints<<anonymous>,
_Types>::__is_implicitly_constructible() [with _UTypes = {const
SomeQuery<Session>&}; bool <anonymous> = true; _Types = {SomeQuery<Session>}]'
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:543:65:   required by
substitution of 'template<bool _NotEmpty, typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_implicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> > constexpr std::tuple<SomeQuery<Session>
>::tuple(const SomeQuery<Session>&) [with bool _NotEmpty = true; typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_implicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> = <missing>]'
96592-0.C:17:31:   required from here
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:138:12: error: incomplete
type 'std::is_constructible<SomeQuery<Session>, const SomeQuery<Session>&>'
used in nested name specifier
  138 |     struct __and_<_B1, _B2>
      |            ^~~~~~~~~~~~~~~~
In file included from 96592-0.C:1:
/home/jwakely/gcc/10/include/c++/10.2.1/tuple: In instantiation of 'static
constexpr bool std::_TupleConstraints<<anonymous>,
_Types>::__is_explicitly_constructible() [with _UTypes = {const
SomeQuery<Session>&}; bool <anonymous> = true; _Types = {SomeQuery<Session>}]':
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:549:65:   required by
substitution of 'template<bool _NotEmpty, typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_explicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> > constexpr std::tuple<SomeQuery<Session>
>::tuple(const SomeQuery<Session>&) [with bool _NotEmpty = true; typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_explicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> = <missing>]'
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:901:30:   required from
'struct std::__is_constructible_impl<SomeQuery<Session>, const
SomeQuery<Session>&>'
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:906:12:   required from
'struct std::is_constructible<SomeQuery<Session>, const SomeQuery<Session>&>'
/home/jwakely/gcc/10/include/c++/10.2.1/type_traits:138:12:   required from
'struct std::__and_<std::is_constructible<SomeQuery<Session>, const
SomeQuery<Session>&>, std::is_convertible<const SomeQuery<Session>&,
SomeQuery<Session> > >'
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:475:7:   required from 'static
constexpr bool std::_TupleConstraints<<anonymous>,
_Types>::__is_implicitly_constructible() [with _UTypes = {const
SomeQuery<Session>&}; bool <anonymous> = true; _Types = {SomeQuery<Session>}]'
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:543:65:   required by
substitution of 'template<bool _NotEmpty, typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_implicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> > constexpr std::tuple<SomeQuery<Session>
>::tuple(const SomeQuery<Session>&) [with bool _NotEmpty = true; typename
std::enable_if<std::tuple<SomeQuery<Session>
>::_TCC<_Cond>::__is_implicitly_constructible<const SomeQuery<Session>&>(),
bool>::type <anonymous> = <missing>]'
96592-0.C:17:31:   required from here
/home/jwakely/gcc/10/include/c++/10.2.1/tuple:487:7: error: 'value' is not a
member of 'std::__and_<std::is_constructible<SomeQuery<Session>, const
SomeQuery<Session>&>, std::__not_<std::__and_<std::is_convertible<const
SomeQuery<Session>&, SomeQuery<Session> > > > >'
  487 |    >::value;
      |       ^~~~~




If I make this change it compiles with GCC (but with a -Wsystem-headers warning
about using a fold expression in C++11/14 code):

--- /home/jwakely/gcc/10/include/c++/10.2.1/tuple~      2020-09-03
16:05:45.063179301 +0100
+++ /home/jwakely/gcc/10/include/c++/10.2.1/tuple       2020-09-03
16:05:47.804179675 +0100
@@ -466,9 +466,8 @@
       template<typename... _UTypes>
        static constexpr bool __is_implicitly_constructible()
        {
-         return __and_<is_constructible<_Types, _UTypes>...,
-                       is_convertible<_UTypes, _Types>...
-                       >::value;
+         return (__is_constructible(_Types, _UTypes) && ...)
+            && __and_<is_convertible<_UTypes, _Types>...>::value;
        }

       // Constraint for a non-explicit constructor.


I see no reason why that change should "fix" anything.

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

* [Bug libstdc++/96592] [10/11 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (2 preceding siblings ...)
  2020-09-03 15:18 ` redi at gcc dot gnu.org
@ 2020-09-03 15:37 ` cvs-commit at gcc dot gnu.org
  2020-09-03 15:38 ` [Bug libstdc++/96592] [10 " redi at gcc dot gnu.org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-09-03 15:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 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:032a4b42cc5f2105f622690ce2552f1c30e1d227

commit r11-2997-g032a4b42cc5f2105f622690ce2552f1c30e1d227
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Sep 3 16:26:16 2020 +0100

    libstdc++: Add workaround for weird std::tuple error [PR 96592]

    This "fix" makes no sense, but it avoids an error from G++ about
    std::is_constructible being incomplete. The real problem is elsewhere,
    but this "fixes" the regression for now.

    libstdc++-v3/ChangeLog:

            PR libstdc++/96592
            * include/std/tuple (_TupleConstraints<true, T...>): Use
            alternative is_constructible instead of std::is_constructible.
            * testsuite/20_util/tuple/cons/96592.cc: New test.

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (3 preceding siblings ...)
  2020-09-03 15:37 ` cvs-commit at gcc dot gnu.org
@ 2020-09-03 15:38 ` redi at gcc dot gnu.org
  2020-09-03 15:43 ` redi at gcc dot gnu.org
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2020-09-03 15:38 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[10/11 Regression] Tuple    |[10 Regression] Tuple
                   |element w/ member reference |element w/ member reference
                   |to incomplete template type |to incomplete template type
                   |rejected                    |rejected

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I've committed a fix to master which makes NO SENSE, but seems to work.

I'll try to figure out what the compiler is confused about and file a bug for
that.

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (4 preceding siblings ...)
  2020-09-03 15:38 ` [Bug libstdc++/96592] [10 " redi at gcc dot gnu.org
@ 2020-09-03 15:43 ` redi at gcc dot gnu.org
  2020-12-17 15:12 ` ppalka at gcc dot gnu.org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2020-09-03 15:43 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
As further evidence the compile is confused, the preprocessed source from GCC
10 can be compiled by GCC 8, but not GCC 9, 10 or trunk.

It started to be rejected with r262172 (fixing PR c++/80290), but the problem
was latent until r10-908 made std::tuple vulnerable to it.

I'll start reducing the preprocessed source ...

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (5 preceding siblings ...)
  2020-09-03 15:43 ` redi at gcc dot gnu.org
@ 2020-12-17 15:12 ` ppalka at gcc dot gnu.org
  2021-03-29 20:04 ` cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ppalka at gcc dot gnu.org @ 2020-12-17 15:12 UTC (permalink / raw)
  To: gcc-bugs

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

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ppalka at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |ppalka at gcc dot gnu.org
             Status|NEW                         |ASSIGNED

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (6 preceding siblings ...)
  2020-12-17 15:12 ` ppalka at gcc dot gnu.org
@ 2021-03-29 20:04 ` cvs-commit at gcc dot gnu.org
  2021-03-30  4:18 ` ppalka at gcc dot gnu.org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-03-29 20:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 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:202e96058031b8ac2edc8fdab2faab06b988a253

commit r10-9607-g202e96058031b8ac2edc8fdab2faab06b988a253
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Sep 3 16:26:16 2020 +0100

    libstdc++: Add workaround for weird std::tuple error [PR 96592]

    This "fix" makes no sense, but it avoids an error from G++ about
    std::is_constructible being incomplete. The real problem is elsewhere,
    but this "fixes" the regression for now.

    libstdc++-v3/ChangeLog:

            PR libstdc++/96592
            * include/std/tuple (_TupleConstraints<true, T...>): Use
            alternative is_constructible instead of std::is_constructible.
            * testsuite/20_util/tuple/cons/96592.cc: New test.

    (cherry picked from commit 032a4b42cc5f2105f622690ce2552f1c30e1d227)

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (7 preceding siblings ...)
  2021-03-29 20:04 ` cvs-commit at gcc dot gnu.org
@ 2021-03-30  4:18 ` ppalka at gcc dot gnu.org
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ppalka at gcc dot gnu.org @ 2021-03-30  4:18 UTC (permalink / raw)
  To: gcc-bugs

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

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|ppalka at gcc dot gnu.org          |unassigned at gcc dot gnu.org
             Status|ASSIGNED                    |NEW

--- Comment #8 from Patrick Palka <ppalka at gcc dot gnu.org> ---
I  wonder if we should remove the workaround on trunk now that the underlying
frontend issue PR96926 is fixed there.

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (8 preceding siblings ...)
  2021-03-30  4:18 ` ppalka at gcc dot gnu.org
@ 2021-04-08 12:02 ` rguenth at gcc dot gnu.org
  2021-11-26 17:41 ` redi at gcc dot gnu.org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-08 12:02 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.3                        |10.4

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10.3 is being released, retargeting bugs to GCC 10.4.

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (9 preceding siblings ...)
  2021-04-08 12:02 ` rguenth at gcc dot gnu.org
@ 2021-11-26 17:41 ` redi at gcc dot gnu.org
  2021-11-26 17:41 ` redi at gcc dot gnu.org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-26 17:41 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|10.4                        |11.3
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This was actually "fixed" for 10.3, so closing.

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (10 preceding siblings ...)
  2021-11-26 17:41 ` redi at gcc dot gnu.org
@ 2021-11-26 17:41 ` redi at gcc dot gnu.org
  2021-11-26 23:07 ` cvs-commit at gcc dot gnu.org
  2022-04-21 15:34 ` cvs-commit at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: redi at gcc dot gnu.org @ 2021-11-26 17:41 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.3                        |10.3

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (11 preceding siblings ...)
  2021-11-26 17:41 ` redi at gcc dot gnu.org
@ 2021-11-26 23:07 ` cvs-commit at gcc dot gnu.org
  2022-04-21 15:34 ` cvs-commit at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-11-26 23:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 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:76c6be48b7841524974754f8ea7533b82c7de77e

commit r12-5551-g76c6be48b7841524974754f8ea7533b82c7de77e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Nov 26 17:46:47 2021 +0000

    libstdc++: Remove workaround for FE bug in std::tuple [PR96592]

    The FE bug was fixed, so we don't need this workaround now.

    libstdc++-v3/ChangeLog:

            PR libstdc++/96592
            * include/std/tuple (tuple::is_constructible): Remove.

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

* [Bug libstdc++/96592] [10 Regression] Tuple element w/ member reference to incomplete template type rejected
  2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
                   ` (12 preceding siblings ...)
  2021-11-26 23:07 ` cvs-commit at gcc dot gnu.org
@ 2022-04-21 15:34 ` cvs-commit at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-04-21 15:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 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:d65b274f1f44c59382b7dad7759cfaf3c8397cf8

commit r11-9927-gd65b274f1f44c59382b7dad7759cfaf3c8397cf8
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Nov 26 17:46:47 2021 +0000

    libstdc++: Remove workaround for FE bug in std::tuple [PR96592]

    The FE bug was fixed, so we don't need this workaround now.

    libstdc++-v3/ChangeLog:

            PR libstdc++/96592
            * include/std/tuple (tuple::is_constructible): Remove.

    (cherry picked from commit 76c6be48b7841524974754f8ea7533b82c7de77e)

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

end of thread, other threads:[~2022-04-21 15:34 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-12 16:15 [Bug c++/96592] New: Tuple element w/ member reference to incomplete template type rejected cuzdav at gmail dot com
2020-08-14  0:19 ` [Bug c++/96592] " johnilacqua at hotmail dot com
2020-08-17 21:51 ` [Bug libstdc++/96592] [10/11 Regression] " mpolacek at gcc dot gnu.org
2020-09-03 15:18 ` redi at gcc dot gnu.org
2020-09-03 15:37 ` cvs-commit at gcc dot gnu.org
2020-09-03 15:38 ` [Bug libstdc++/96592] [10 " redi at gcc dot gnu.org
2020-09-03 15:43 ` redi at gcc dot gnu.org
2020-12-17 15:12 ` ppalka at gcc dot gnu.org
2021-03-29 20:04 ` cvs-commit at gcc dot gnu.org
2021-03-30  4:18 ` ppalka at gcc dot gnu.org
2021-04-08 12:02 ` rguenth at gcc dot gnu.org
2021-11-26 17:41 ` redi at gcc dot gnu.org
2021-11-26 17:41 ` redi at gcc dot gnu.org
2021-11-26 23:07 ` cvs-commit at gcc dot gnu.org
2022-04-21 15:34 ` cvs-commit 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).