llvm/llvm/include/llvm/TextAPI/Symbol.h

//===- llvm/TextAPI/Symbol.h - TAPI Symbol ----------------------*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_TEXTAPI_SYMBOL_H
#define LLVM_TEXTAPI_SYMBOL_H

#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/TextAPI/ArchitectureSet.h"
#include "llvm/TextAPI/Target.h"

namespace llvm {
namespace MachO {

// clang-format off

/// Symbol flags.
enum class SymbolFlags : uint8_t {};

// clang-format on

/// Mapping of entry types in TextStubs.
enum class EncodeKind : uint8_t {};

constexpr StringLiteral ObjC1ClassNamePrefix =;
constexpr StringLiteral ObjC2ClassNamePrefix =;
constexpr StringLiteral ObjC2MetaClassNamePrefix =;
constexpr StringLiteral ObjC2EHTypePrefix =;
constexpr StringLiteral ObjC2IVarPrefix =;

/// ObjC Interface symbol mappings.
enum class ObjCIFSymbolKind : uint8_t {};

TargetList;

// Keep containers that hold Targets in sorted order and uniqued.
template <typename C>
typename C::iterator addEntry(C &Container, const Target &Targ) {}

class Symbol {};

/// Lightweight struct for passing around symbol information.
struct SimpleSymbol {};

/// Get symbol classification by parsing the name of a symbol.
///
/// \param SymName The name of symbol.
SimpleSymbol parseSymbol(StringRef SymName);

} // end namespace MachO.
} // end namespace llvm.

#endif // LLVM_TEXTAPI_SYMBOL_H