diff options
| author | Mason Reed <mason@vector35.com> | 2024-04-24 18:33:11 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2024-05-03 11:25:32 -0400 |
| commit | 80201094d494278493e2e08f6adc7c2b4c5b0ad6 (patch) | |
| tree | f770620e12d5b8c21155c2a67b3d66e34816b2ed /binaryninjaapi.h | |
| parent | 92a468d7566de31e6867a77c5cf1c64e33792109 (diff) | |
Expose LLVM demangler
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 20 |
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. |
