summaryrefslogtreecommitdiff
path: root/demangle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'demangle.cpp')
-rw-r--r--demangle.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/demangle.cpp b/demangle.cpp
index 56f4ba90..fbe39672 100644
--- a/demangle.cpp
+++ b/demangle.cpp
@@ -3,6 +3,29 @@
using namespace std;
namespace BinaryNinja {
+ bool DemangleLLVM(const std::string& mangledName, QualifiedName& outVarName,
+ BinaryView* view)
+ {
+ const bool simplify = Settings::Instance()->Get<bool>("analysis.types.templateSimplifier", view);
+ return DemangleLLVM(mangledName, outVarName, simplify);
+ }
+
+ bool DemangleLLVM(const std::string& mangledName, QualifiedName& outVarName,
+ const bool simplify)
+ {
+ BNType* localType = nullptr;
+ char** localVarName = nullptr;
+ size_t localSize = 0;
+ if (!BNDemangleLLVM(mangledName.c_str(), &localVarName, &localSize, simplify))
+ return false;
+ for (size_t i = 0; i < localSize; i++)
+ {
+ outVarName.push_back(localVarName[i]);
+ }
+ BNFreeDemangledName(&localVarName, localSize);
+ return true;
+ }
+
bool DemangleMS(Architecture* arch, const std::string& mangledName, Ref<Type>& outType, QualifiedName& outVarName,
BinaryView* view)
{