summaryrefslogtreecommitdiff
path: root/demangler
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-12-23 13:12:02 -0700
committerRusty Wagner <rusty.wagner@gmail.com>2026-05-22 16:30:56 -0400
commit8d621c51b2797fda7b1dc22243dde611cfc04f68 (patch)
treeba5e6a90e644d21d13e75dabcbd0cc747444443a /demangler
parent08e34ac325743085911f96b62c81d9a1f2127806 (diff)
Refactor calling conventions to support correct representation of structures
Diffstat (limited to 'demangler')
-rw-r--r--demangler/gnu3/demangled_type_node.cpp2
-rw-r--r--demangler/msvc/demangle_msvc.cpp4
2 files changed, 3 insertions, 3 deletions
diff --git a/demangler/gnu3/demangled_type_node.cpp b/demangler/gnu3/demangled_type_node.cpp
index 89bfb2fa..a52f9ef8 100644
--- a/demangler/gnu3/demangled_type_node.cpp
+++ b/demangler/gnu3/demangled_type_node.cpp
@@ -502,7 +502,7 @@ Ref<Type> DemangledTypeNode::Finalize() const
for (auto& p : m_params)
{
Ref<Type> pType = p.type ? p.type->Finalize() : Ref<Type>(Type::VoidType());
- finalParams.push_back({p.name, pType, true, Variable()});
+ finalParams.push_back({p.name, pType, DefaultLocationSource, Variable()});
}
TypeBuilder tb = TypeBuilder::FunctionType(retType->WithConfidence(m_returnTypeConfidence), nullptr, finalParams);
tb.SetConst(m_const);
diff --git a/demangler/msvc/demangle_msvc.cpp b/demangler/msvc/demangle_msvc.cpp
index 0489c341..412ed960 100644
--- a/demangler/msvc/demangle_msvc.cpp
+++ b/demangler/msvc/demangle_msvc.cpp
@@ -732,7 +732,7 @@ void Demangle::DemangleVariableList(vector<FunctionParameter>& paramList, Backre
}
vt.name = name.GetString();
vt.type = type.Finalize();
- vt.defaultLocation = true;
+ vt.locationSource = DefaultLocationSource;
paramList.push_back(vt);
m_logger->LogDebug("Argument %zu: '%s' - '%s'\n", i, vt.type->GetString().c_str(), reader.GetRaw());
@@ -1607,7 +1607,7 @@ TypeBuilder Demangle::DemangleFunction(BNNameType classFunctionType, bool pointe
QualifiedName thisName = m_varName;
if (thisName.size() > 0)
thisName.erase(thisName.end() - 1);
- params.push_back(FunctionParameter("this", Type::PointerType(m_arch, Type::NamedType(thisName, Type::VoidType())), true, {}));
+ params.push_back(FunctionParameter("this", Type::PointerType(m_arch, Type::NamedType(thisName, Type::VoidType())), DefaultLocationSource, {}));
}
DemangleVariableList(params, m_backrefList);