https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123811
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jason at gcc dot gnu.org
--- Comment #4 from Patrick Palka <ppalka at gcc dot gnu.org> ---
The straightforward patch:
diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc
index de9e960c683c..3ca4e29822d8 100644
--- a/gcc/cp/mangle.cc
+++ b/gcc/cp/mangle.cc
@@ -1268,7 +1268,11 @@ write_nested_name (const tree decl)
{
/* Yes, use <template-prefix>. */
write_template_prefix (decl);
- write_template_args (TI_ARGS (info));
+ /* As in write_name. */
+ tree parms = (TREE_CODE (decl) == FUNCTION_DECL
+ ? DECL_TEMPLATE_PARMS (TI_TEMPLATE (info))
+ : NULL_TREE);
+ write_template_args (TI_ARGS (info), parms);
}
else if ((!abi_version_at_least (10) || TREE_CODE (decl) == TYPE_DECL)
&& TREE_CODE (TREE_TYPE (decl)) == TYPENAME_TYPE)
seems to fix things, but it causes abi/lambda-tpl1-18.C mangling to change for
inline auto l_tpl_nt_auto = [] <auto I = 0> () {};
from _ZNK13l_tpl_nt_autoMUlTnDavE_clILi0EEEDav
to _ZNK13l_tpl_nt_autoMUlTnDavE_clITnDaLi0EEEDav
I have no idea what to make of that :(