diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-04-14 21:41:27 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2023-06-22 18:20:56 +0000 |
commit | bdd1243df58e60e85101c09001d9812a789b6bc4 (patch) | |
tree | a1ce621c7301dd47ba2ddc3b8eaa63b441389481 /contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp | |
parent | 781624ca2d054430052c828ba8d2c2eaf2d733e7 (diff) | |
parent | e3b557809604d036af6e00c60f012c2025b59a5e (diff) |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp b/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp index 1c9209d8f369..9b646ea800aa 100644 --- a/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp +++ b/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp @@ -375,15 +375,12 @@ char *llvm::itaniumDemangle(const char *MangledName, char *Buf, int InternalStatus = demangle_success; Demangler Parser(MangledName, MangledName + std::strlen(MangledName)); - OutputBuffer OB; - Node *AST = Parser.parse(); if (AST == nullptr) InternalStatus = demangle_invalid_mangled_name; - else if (!initializeOutputBuffer(Buf, N, OB, 1024)) - InternalStatus = demangle_memory_alloc_failure; else { + OutputBuffer OB(Buf, N); assert(Parser.ForwardTemplateRefs.empty()); AST->print(OB); OB += '\0'; @@ -427,9 +424,7 @@ bool ItaniumPartialDemangler::partialDemangle(const char *MangledName) { } static char *printNode(const Node *RootNode, char *Buf, size_t *N) { - OutputBuffer OB; - if (!initializeOutputBuffer(Buf, N, OB, 128)) - return nullptr; + OutputBuffer OB(Buf, N); RootNode->print(OB); OB += '\0'; if (N != nullptr) @@ -472,9 +467,7 @@ char *ItaniumPartialDemangler::getFunctionDeclContextName(char *Buf, return nullptr; const Node *Name = static_cast<const FunctionEncoding *>(RootNode)->getName(); - OutputBuffer OB; - if (!initializeOutputBuffer(Buf, N, OB, 128)) - return nullptr; + OutputBuffer OB(Buf, N); KeepGoingLocalFunction: while (true) { @@ -525,9 +518,7 @@ char *ItaniumPartialDemangler::getFunctionParameters(char *Buf, return nullptr; NodeArray Params = static_cast<FunctionEncoding *>(RootNode)->getParams(); - OutputBuffer OB; - if (!initializeOutputBuffer(Buf, N, OB, 128)) - return nullptr; + OutputBuffer OB(Buf, N); OB += '('; Params.printWithComma(OB); @@ -543,9 +534,7 @@ char *ItaniumPartialDemangler::getFunctionReturnType( if (!isFunction()) return nullptr; - OutputBuffer OB; - if (!initializeOutputBuffer(Buf, N, OB, 128)) - return nullptr; + OutputBuffer OB(Buf, N); if (const Node *Ret = static_cast<const FunctionEncoding *>(RootNode)->getReturnType()) |