https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126860
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <[email protected]>: https://gcc.gnu.org/g:0e74517b70d06105bd40c8caa6dc192b4af3ccff commit r17-3301-g0e74517b70d06105bd40c8caa6dc192b4af3ccff Author: Patrick Palka <[email protected]> Date: Fri Aug 14 14:33:46 2026 -0400 c++: ICE w/ maybe_warn_nodiscard on non-dep call [PR123495, PR126860] Another latent issue uncovered by the NON_DEPENDENT_EXPR removal. cp_get_fndecl_from_callee, called from maybe_warn_nodiscard, tries to fold the templated callee via constant evaluation, but constant evaluation expects non-templated trees. So use fold_non_dependent_expr which instantiates templated trees beforehand. We could use f_n_d_init also but there should be no difference for a result that doesn't end up as NULL_TREE. PR c++/123495 PR c++/126860 gcc/cp/ChangeLog: * cvt.cc (cp_get_fndecl_from_callee): Use fold_non_dependent_expr instead of maybe_constant_init. gcc/testsuite/ChangeLog: * g++.dg/template/non-dependent36.C: New test. * g++.dg/template/non-dependent37.C: New test. Reviewed-by: Jason Merrill <[email protected]>
