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).