From 3617086969462676272786827089388047502883 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Thu, 21 Nov 2024 17:09:57 -0500 Subject: Fix gnu3 demangler losing track of NTR ids --- demangler/gnu3/demangle_gnu3.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'demangler/gnu3/demangle_gnu3.cpp') diff --git a/demangler/gnu3/demangle_gnu3.cpp b/demangler/gnu3/demangle_gnu3.cpp index fdef5b8f..26dc99fe 100644 --- a/demangler/gnu3/demangle_gnu3.cpp +++ b/demangler/gnu3/demangle_gnu3.cpp @@ -88,7 +88,9 @@ static void ExtendTypeName(TypeBuilder& type, const string& extend) qn.back() += extend; else qn.push_back(extend); - type.SetTypeName(qn); + type.SetNamedTypeReference( + NamedTypeReference::GenerateAutoDemangledTypeReference(type.GetNamedTypeReference()->GetTypeReferenceClass(), qn) + ); } @@ -1770,7 +1772,9 @@ TypeBuilder DemangleGNU3::DemangleNestedName() QualifiedName newName = type.GetTypeName() + newType.GetTypeName(); if (newName.StringSize() > MAX_DEMANGLE_LENGTH) throw DemangleException("Detected adversarial mangled string"); - type.SetTypeName(newName); + type.SetNamedTypeReference( + NamedTypeReference::GenerateAutoDemangledTypeReference(type.GetNamedTypeReference()->GetTypeReferenceClass(), newName) + ); type.SetHasTemplateArguments(false); } if (substitute && m_reader.Peek() != 'E') -- cgit v1.3.1