summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-04-24 18:33:11 -0400
committerMason Reed <mason@vector35.com>2024-05-03 11:25:32 -0400
commit80201094d494278493e2e08f6adc7c2b4c5b0ad6 (patch)
treef770620e12d5b8c21155c2a67b3d66e34816b2ed /binaryninjaapi.h
parent92a468d7566de31e6867a77c5cf1c64e33792109 (diff)
Expose LLVM demangler
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 5ec190b2..9d4a3ae6 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1531,6 +1531,26 @@ namespace BinaryNinja {
std::function<bool(size_t, size_t)> progress = {}, Ref<Metadata> options = new Metadata(MetadataType::KeyValueDataType),
bool isDatabase = false);
+ /*! Demangles using LLVM's demangler
+
+ \param[in] mangledName a mangled (msvc/itanium/rust/dlang) name
+ \param[out] outVarName QualifiedName reference to write the output name to.
+ \param[in] simplify Whether to simplify demangled names.
+
+ \ingroup demangle
+ */
+ bool DemangleLLVM(const std::string& mangledName, QualifiedName& outVarName, const bool simplify = false);
+
+ /*! Demangles using LLVM's demangler
+
+ \param[in] mangledName a mangled (msvc/itanium/rust/dlang) name
+ \param[out] outVarName QualifiedName reference to write the output name to.
+ \param[in] view View to check the analysis.types.templateSimplifier for
+
+ \ingroup demangle
+ */
+ bool DemangleLLVM(const std::string& mangledName, QualifiedName& outVarName, BinaryView* view);
+
/*! Demangles a Microsoft Visual Studio C++ name
\param[in] arch Architecture for the symbol. Required for pointer and integer sizes.