https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109556
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:5e284ebbc3082c5a8974d24e3a0977aa48f3cc60 commit r14-91-g5e284ebbc3082c5a8974d24e3a0977aa48f3cc60 Author: Patrick Palka <ppa...@redhat.com> Date: Wed Apr 19 13:07:46 2023 -0400 c++: bad ggc_free in try_class_unification [PR109556] Aside from correcting how try_class_unification copies multi-dimensional 'targs', r13-377-g3e948d645bc908 also made it ggc_free this copy as an optimization. But this is wrong since the call to unify within might've captured the args in persistent memory such as the satisfaction cache (as part of constrained auto deduction). PR c++/109556 gcc/cp/ChangeLog: * pt.cc (try_class_unification): Don't ggc_free the copy of 'targs'. gcc/testsuite/ChangeLog: * g++.dg/cpp2a/concepts-placeholder13.C: New test.