[Bug c++/108579] [13 Regression] Requires-expression that checks constructor on non-template constructor of template class got rejected

2023-02-03 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108579

Patrick Palka  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|ASSIGNED|RESOLVED

--- Comment #3 from Patrick Palka  ---
Fixed for GCC 13, thanks for the bug report.

[Bug c++/108579] [13 Regression] Requires-expression that checks constructor on non-template constructor of template class got rejected

2023-02-03 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108579

--- Comment #2 from CVS Commits  ---
The master branch has been updated by Patrick Palka :

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

commit r13-5682-ge7930c6750d03b28d922ebbbace20ba9d8622c6a
Author: Patrick Palka 
Date:   Fri Feb 3 09:12:31 2023 -0500

c++: excessive satisfaction in check_methods [PR108579]

In check_methods we're unnecessarily checking satisfaction for all
constructors and assignment operators, even those that don't look like
copy/move special members.  In the testcase below this manifests as an
unstable satisfaction error because the satisfaction result is first
determined to be false during check_methods (since A is incomplete
at this point) and later true after completion of A.

This patch fixes this simply by swapping the order of the
constraint_satisfied_p and copy/move_fn_p tests.

PR c++/108579

gcc/cp/ChangeLog:

* class.cc (check_methods): Swap order of constraints_satisfied_p
and copy/move_fn_p tests.

gcc/testsuite/ChangeLog:

* g++.dg/cpp2a/concepts-pr108579.C: New test.

[Bug c++/108579] [13 Regression] Requires-expression that checks constructor on non-template constructor of template class got rejected

2023-01-30 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108579

Patrick Palka  changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
   Last reconfirmed||2023-01-30
 Ever confirmed|0   |1
 CC||ppalka at gcc dot gnu.org
 Status|UNCONFIRMED |ASSIGNED

[Bug c++/108579] [13 Regression] Requires-expression that checks constructor on non-template constructor of template class got rejected

2023-01-29 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108579

Jonathan Wakely  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org
   Keywords|needs-bisection |

--- Comment #1 from Jonathan Wakely  ---
The error started with r13-2968:

c++: fix triviality of class with unsatisfied op=

cxx20_pair is trivially copyable because it has a trivial copy constructor
and only a deleted copy assignment operator; the non-triviality of the
unsatisfied copy assignment overload is not considered.

[Bug c++/108579] [13 Regression] Requires-expression that checks constructor on non-template constructor of template class got rejected

2023-01-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108579

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||needs-bisection,
   ||rejects-valid
   Target Milestone|--- |13.0
Summary|Requires-expression that|[13 Regression]
   |checks constructor on   |Requires-expression that
   |non-template constructor of |checks constructor on
   |template class got rejected |non-template constructor of
   ||template class got rejected