diff options
Diffstat (limited to 'demangler')
| -rw-r--r-- | demangler/gnu3/demangle_gnu3.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/demangler/gnu3/demangle_gnu3.cpp b/demangler/gnu3/demangle_gnu3.cpp index 26dc99fe..bd96b3f7 100644 --- a/demangler/gnu3/demangle_gnu3.cpp +++ b/demangler/gnu3/demangle_gnu3.cpp @@ -88,9 +88,14 @@ static void ExtendTypeName(TypeBuilder& type, const string& extend) qn.back() += extend; else qn.push_back(extend); - type.SetNamedTypeReference( - NamedTypeReference::GenerateAutoDemangledTypeReference(type.GetNamedTypeReference()->GetTypeReferenceClass(), qn) - ); + + // This type might not be an NTR (Vector35/binaryninja-api#6261) + if (type.GetClass() == NamedTypeReferenceClass) + { + type.SetNamedTypeReference( + NamedTypeReference::GenerateAutoDemangledTypeReference(type.GetNamedTypeReference()->GetTypeReferenceClass(), qn) + ); + } } |
