From 32cb594177df24e0a17e049848425dd2c54ba98b Mon Sep 17 00:00:00 2001 From: Juergen Ributzka Date: Fri, 22 Mar 2019 22:46:52 +0000 Subject: [TextAPI] TBD Reader/Writer Add basic infrastructure for reading and writting TBD files (version 1 - 3). The TextAPI library is not used by anything yet (besides the unit tests). Tool support will be added in a separate commit. The TBD format is currently documented in the implementation file (TextStub.cpp). https://reviews.llvm.org/D53945 Update: This contains changes to fix issues discovered by the bots: - add parentheses to silence warnings. - rename variables - use PlatformType from BinaryFormat - Trying if switching from a vector to an array will appeas the bots. - Replace the tuple with a struct to work around an explicit constructor bug. - This fixes an issue where we were leaking the YAML document if there was a parsing error. Updated the license information in all files. llvm-svn: 356820 --- llvm/lib/TextAPI/MachO/Symbol.cpp | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 llvm/lib/TextAPI/MachO/Symbol.cpp (limited to 'llvm/lib/TextAPI/MachO/Symbol.cpp') diff --git a/llvm/lib/TextAPI/MachO/Symbol.cpp b/llvm/lib/TextAPI/MachO/Symbol.cpp new file mode 100644 index 00000000000..8c9ec78a96a --- /dev/null +++ b/llvm/lib/TextAPI/MachO/Symbol.cpp @@ -0,0 +1,49 @@ +//===- Symbol.cpp ---------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// Implements the Symbol. +// +//===----------------------------------------------------------------------===// + +#include "llvm/TextAPI/MachO/Symbol.h" +#include + +namespace llvm { +namespace MachO { + +#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) +LLVM_DUMP_METHOD void Symbol::dump(raw_ostream &OS) const { + std::string Result; + if (isUndefined()) + Result += "(undef) "; + if (isWeakDefined()) + Result += "(weak-def) "; + if (isWeakReferenced()) + Result += "(weak-ref) "; + if (isThreadLocalValue()) + Result += "(tlv) "; + switch (Kind) { + case SymbolKind::GlobalSymbol: + Result + Name.str(); + break; + case SymbolKind::ObjectiveCClass: + Result + "(ObjC Class) " + Name.str(); + break; + case SymbolKind::ObjectiveCClassEHType: + Result + "(ObjC Class EH) " + Name.str(); + break; + case SymbolKind::ObjectiveCInstanceVariable: + Result + "(ObjC IVar) " + Name.str(); + break; + } + OS << Result; +} +#endif + +} // end namespace MachO. +} // end namespace llvm. -- cgit v1.2.3