summaryrefslogtreecommitdiff
path: root/demangler/gnu3/demangle_gnu3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'demangler/gnu3/demangle_gnu3.cpp')
-rw-r--r--demangler/gnu3/demangle_gnu3.cpp8
1 files changed, 6 insertions, 2 deletions
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')