[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 Patrick Palka changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Patrick Palka --- Fixed for GCC 10.3+, thanks for the report.
[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 --- Comment #4 from CVS Commits --- The releases/gcc-10 branch has been updated by Patrick Palka : https://gcc.gnu.org/g:745ba1024c653324f9f0b88968c6f8989ed1e093 commit r10-8604-g745ba1024c653324f9f0b88968c6f8989ed1e093 Author: Patrick Palka Date: Wed Jul 29 22:06:36 2020 -0400 c++: abbreviated function template friend matching [PR96106] In the below testcase, duplicate_decls wasn't merging the tsubsted friend declaration for 'void add(auto)' with its definition, because reduce_template_parm_level (during tsubst_friend_function) lost the DECL_VIRTUAL_P flag on the auto's invented template parameter, which caused template_heads_equivalent_p to deem the two template heads as not equivalent in C++20 mode. This patch makes reduce_template_parm_level carry over the DECL_VIRTUAL_P flag from the original TEMPLATE_PARM_DECL. gcc/cp/ChangeLog: PR c++/96106 * pt.c (reduce_template_parm_level): Propagate DECL_VIRTUAL_P from the original TEMPLATE_PARM_DECL to the new lowered one. gcc/testsuite/ChangeLog: PR c++/96106 * g++.dg/concepts/abbrev7.C: New test. (cherry picked from commit f31dd9beb95f4beda1d2bd5c0526c42d0ce455c4)
[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 --- Comment #3 from CVS Commits --- The master branch has been updated by Patrick Palka : https://gcc.gnu.org/g:f31dd9beb95f4beda1d2bd5c0526c42d0ce455c4 commit r11-2418-gf31dd9beb95f4beda1d2bd5c0526c42d0ce455c4 Author: Patrick Palka Date: Wed Jul 29 22:06:36 2020 -0400 c++: abbreviated function template friend matching [PR96106] In the below testcase, duplicate_decls wasn't merging the tsubsted friend declaration for 'void add(auto)' with its definition, because reduce_template_parm_level (during tsubst_friend_function) lost the DECL_VIRTUAL_P flag on the auto's invented template parameter, which caused template_heads_equivalent_p to deem the two template heads as not equivalent in C++20 mode. This patch makes reduce_template_parm_level carry over the DECL_VIRTUAL_P flag from the original TEMPLATE_PARM_DECL. gcc/cp/ChangeLog: PR c++/96106 * pt.c (reduce_template_parm_level): Propagate DECL_VIRTUAL_P from the original TEMPLATE_PARM_DECL to the new lowered one. gcc/testsuite/ChangeLog: PR c++/96106 * g++.dg/concepts/abbrev7.C: New test.
[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 Richard Biener changed: What|Removed |Added Target Milestone|10.2|10.3 --- Comment #2 from Richard Biener --- GCC 10.2 is released, adjusting target milestone.
[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 Patrick Palka 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
[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.2
[Bug c++/96106] [10/11 Regression] A friend abbreviated template function denies access to private members
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96106 Jonathan Wakely changed: What|Removed |Added Summary|A friend abbreviated|[10/11 Regression] A friend |template function denies|abbreviated template |access to private members |function denies access to ||private members Known to fail||10.1.0, 11.0 Known to work||9.3.0 Last reconfirmed||2020-07-08 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Jonathan Wakely --- This was accepted with -std=gnu++2a -fconcepts until r276764, "Update the concepts implementation to conform to C++20." It's still accepted with -std=gnu++17 -fconcepts now.