diff options
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangleNodes.cpp')
-rw-r--r-- | llvm/lib/Demangle/MicrosoftDemangleNodes.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp b/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp index bfd40eac50f..c57f0cfaaa5 100644 --- a/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp +++ b/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp @@ -368,16 +368,23 @@ void LiteralOperatorIdentifierNode::output(OutputStream &OS, void FunctionSignatureNode::outputPre(OutputStream &OS, OutputFlags Flags) const { + if (FunctionClass & FC_Public) + OS << "public: "; + if (FunctionClass & FC_Protected) + OS << "protected: "; + if (FunctionClass & FC_Private) + OS << "private: "; + if (!(FunctionClass & FC_Global)) { if (FunctionClass & FC_Static) OS << "static "; } - if (FunctionClass & FC_ExternC) - OS << "extern \"C\" "; - if (FunctionClass & FC_Virtual) OS << "virtual "; + if (FunctionClass & FC_ExternC) + OS << "extern \"C\" "; + if (ReturnType) { ReturnType->outputPre(OS, Flags); OS << " "; @@ -554,9 +561,13 @@ void FunctionSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { void VariableSymbolNode::output(OutputStream &OS, OutputFlags Flags) const { switch (SC) { case StorageClass::PrivateStatic: + OS << "private: static "; + break; case StorageClass::PublicStatic: + OS << "public: static "; + break; case StorageClass::ProtectedStatic: - OS << "static "; + OS << "protected: static "; break; default: break; |