https://gcc.gnu.org/g:2f7802783034ad8611e1d25a4aec057d44c96720

commit r16-851-g2f7802783034ad8611e1d25a4aec057d44c96720
Author: Jason Merrill <ja...@redhat.com>
Date:   Thu May 22 17:11:10 2025 -0400

    c++: drop push_tinst_level in mangling
    
    I wondered why we needed to push/pop_tinst_level in mangle_decl_string.  And
    apparently we don't need to anymore.
    
    gcc/cp/ChangeLog:
    
            * mangle.cc (mangle_decl_string): Don't push_tinst_level.

Diff:
---
 gcc/cp/mangle.cc | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc
index 3d5e96b2c944..13d5dedebd29 100644
--- a/gcc/cp/mangle.cc
+++ b/gcc/cp/mangle.cc
@@ -4452,23 +4452,12 @@ static tree
 mangle_decl_string (const tree decl)
 {
   tree result;
-  tree saved_fn = NULL_TREE;
-  bool template_p = false;
+  tree saved_fn = current_function_decl;
 
   /* We shouldn't be trying to mangle an uninstantiated template.  */
   gcc_assert (!type_dependent_expression_p (decl));
 
-  if (DECL_LANG_SPECIFIC (decl) && DECL_USE_TEMPLATE (decl))
-    {
-      struct tinst_level *tl = current_instantiation ();
-      if ((!tl || tl->maybe_get_node () != decl)
-         && push_tinst_level (decl))
-       {
-         template_p = true;
-         saved_fn = current_function_decl;
-         current_function_decl = NULL_TREE;
-       }
-    }
+  current_function_decl = NULL_TREE;
   iloc_sentinel ils (DECL_SOURCE_LOCATION (decl));
 
   start_mangling (decl);
@@ -4483,12 +4472,7 @@ mangle_decl_string (const tree decl)
     fprintf (stderr, "mangle_decl_string = '%s'\n\n",
             IDENTIFIER_POINTER (result));
 
-  if (template_p)
-    {
-      pop_tinst_level ();
-      current_function_decl = saved_fn;
-    }
-
+  current_function_decl = saved_fn;
   return result;
 }

Reply via email to