OSDN Git Service

[MS Demangler] Add a helper function to print a Node as a string.
authorZachary Turner <zturner@google.com>
Mon, 17 Dec 2018 16:14:50 +0000 (16:14 +0000)
committerZachary Turner <zturner@google.com>
Mon, 17 Dec 2018 16:14:50 +0000 (16:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349359 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Demangle/MicrosoftDemangleNodes.h
lib/Demangle/MicrosoftDemangleNodes.cpp

index 1d0b66a..1eca676 100644 (file)
@@ -235,6 +235,8 @@ struct Node {
 
   virtual void output(OutputStream &OS, OutputFlags Flags) const = 0;
 
+  std::string toString() const;
+
 private:
   NodeKind Kind;
 };
index c57f0cf..930c838 100644 (file)
@@ -113,6 +113,14 @@ static void outputCallingConvention(OutputStream &OS, CallingConv CC) {
   }
 }
 
+std::string Node::toString() const {
+  OutputStream OS;
+  initializeOutputStream(nullptr, nullptr, OS, 1024);
+  this->output(OS, llvm::ms_demangle::OF_Default);
+  OS << '\0';
+  return {OS.getBuffer()};
+}
+
 void TypeNode::outputQuals(bool SpaceBefore, bool SpaceAfter) const {}
 
 void PrimitiveTypeNode::outputPre(OutputStream &OS, OutputFlags Flags) const {