aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2023-04-14 21:41:27 +0000
committerDimitry Andric <dim@FreeBSD.org>2023-06-22 18:20:56 +0000
commitbdd1243df58e60e85101c09001d9812a789b6bc4 (patch)
treea1ce621c7301dd47ba2ddc3b8eaa63b441389481 /contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp
parent781624ca2d054430052c828ba8d2c2eaf2d733e7 (diff)
parente3b557809604d036af6e00c60f012c2025b59a5e (diff)
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp')
-rw-r--r--contrib/llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp21
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())