llvm/llvm/include/llvm/DebugInfo/LogicalView/Core/LVObject.h

//===-- LVObject.h ----------------------------------------------*- 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
//
//===----------------------------------------------------------------------===//
//
// This file defines the LVObject class, which is used to describe a debug
// information object.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVOBJECT_H
#define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVOBJECT_H

#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
#include "llvm/DebugInfo/LogicalView/Core/LVSupport.h"
#include <limits>
#include <list>
#include <string>

namespace llvm {
namespace dwarf {
// Support for CodeView ModifierOptions::Unaligned.
constexpr Tag DW_TAG_unaligned =;
} // namespace dwarf
} // namespace llvm

namespace llvm {
namespace logicalview {

LVSectionIndex;
LVAddress;
LVHalf;
LVLevel;
LVOffset;
LVSigned;
LVUnsigned;
LVSmall;

class LVElement;
class LVLine;
class LVLocation;
class LVLocationSymbol;
class LVObject;
class LVOperation;
class LVScope;
class LVSymbol;
class LVType;

class LVOptions;
class LVPatterns;

StringRef typeNone();
StringRef typeVoid();
StringRef typeInt();
StringRef typeUnknown();
StringRef emptyString();

LVElementSetFunction;
LVElementGetFunction;
LVLineSetFunction;
LVLineGetFunction;
LVObjectSetFunction;
LVObjectGetFunction;
LVScopeSetFunction;
LVScopeGetFunction;
LVSymbolSetFunction;
LVSymbolGetFunction;
LVTypeSetFunction;
LVTypeGetFunction;

LVElements;
LVLines;
LVLocations;
LVOperations;
LVScopes;
LVSymbols;
LVTypes;

LVOffsets;

const LVAddress MaxAddress =;

enum class LVBinaryType {};
enum class LVComparePass {};

// Validate functions.
LVValidLocation;

// Keep counters of objects.
struct LVCounter {};

class LVObject {};

} // end namespace logicalview
} // end namespace llvm

#endif // LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVOBJECT_H