https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122559
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-15 branch has been updated by Jakub Jelinek <[email protected]>: https://gcc.gnu.org/g:e66c207e111e77c2c67d564ef2a7fdf95c958e8a commit r15-10980-ge66c207e111e77c2c67d564ef2a7fdf95c958e8a Author: Jakub Jelinek <[email protected]> Date: Mon Mar 16 08:06:52 2026 +0100 c++: Fix up sb as condition instantiation error-recovery [PR120039] The following two testcases ICE during instantation. Normally for the artificial var used for structured binding as condition (which has NULL DECL_NAME) there is a DECL_EXPR which registers local specialization and so tsubst_expr works fine. But if there are errors while parsing the initializer, the VAR_DECL has still NULL_TREE DECL_NAME, but error_mark_node TREE_TYPE and when tsubst_expr is called on it, it falls back to calling lookup_name (NULL_TREE) and ICEs on that. The following patch fixes it by not calling lookup_name if DECL_NAME is NULL. 2026-03-16 Jakub Jelinek <[email protected]> PR c++/120039 PR c++/122559 * pt.cc (tsubst_expr) <case VAR_DECL>: Don't call lookup_name on DECL_NAME (t) if it is NULL_TREE. * g++.dg/cpp26/decomp28.C: New test. * g++.dg/cpp26/decomp29.C: New test. Reviewed-by: Jason Merrill <[email protected]> (cherry picked from commit caae42b31118f754fbd1f9566373f589d7e1568f)
