https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116108
--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:88bfee560681d8248b89f130ada249e35ee2e344 commit r15-6293-g88bfee560681d8248b89f130ada249e35ee2e344 Author: Jakub Jelinek <ja...@redhat.com> Date: Tue Dec 17 10:13:24 2024 +0100 c++: Diagnose earlier non-static data members with cv containing class type [PR116108] In r10-6457 aka PR92593 fix a check has been added to reject earlier non-static data members with current_class_type in templates, as the deduction then can result in endless recursion in reshape_init. It fixed the template <class T> struct S { S s = 1; }; S t{2}; crashes, but as the following testcase shows, didn't catch when there are cv qualifiers on the non-static data member. Fixed by using TYPE_MAIN_VARIANT. 2024-12-17 Jakub Jelinek <ja...@redhat.com> PR c++/116108 gcc/cp/ * decl.cc (grokdeclarator): Pass TYYPE_MAIN_VARIANT (type) rather than type to same_type_p when checking if the non-static data member doesn't have current class type. gcc/testsuite/ * g++.dg/cpp1z/class-deduction117.C: New test.