//===-- LVScope.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 LVScope class, which is used to describe a debug // information scope. // //===----------------------------------------------------------------------===// #ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSCOPE_H #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSCOPE_H #include "llvm/DebugInfo/LogicalView/Core/LVElement.h" #include "llvm/DebugInfo/LogicalView/Core/LVLocation.h" #include "llvm/DebugInfo/LogicalView/Core/LVSort.h" #include "llvm/Object/ObjectFile.h" #include <list> #include <map> #include <set> namespace llvm { namespace logicalview { // Name address, Code size. LVNameInfo; LVPublicNames; LVPublicAddresses; class LVRange; enum class LVScopeKind { … }; LVScopeKindSet; LVScopeDispatch; LVScopeRequest; LVOffsetElementMap; LVOffsetLinesMap; LVOffsetLocationsMap; LVOffsetSymbolMap; LVTagOffsetsMap; // Class to represent a DWARF Scope. class LVScope : public LVElement { … }; // Class to represent a DWARF Union/Structure/Class. class LVScopeAggregate final : public LVScope { … }; // Class to represent a DWARF Template alias. class LVScopeAlias final : public LVScope { … }; // Class to represent a DWARF array (DW_TAG_array_type). class LVScopeArray final : public LVScope { … }; // Class to represent a DWARF Compilation Unit (CU). class LVScopeCompileUnit final : public LVScope { … }; // Class to represent a DWARF enumerator (DW_TAG_enumeration_type). class LVScopeEnumeration final : public LVScope { … }; // Class to represent a DWARF formal parameter pack // (DW_TAG_GNU_formal_parameter_pack). class LVScopeFormalPack final : public LVScope { … }; // Class to represent a DWARF Function. class LVScopeFunction : public LVScope { … }; // Class to represent a DWARF inlined function. class LVScopeFunctionInlined final : public LVScopeFunction { … }; // Class to represent a DWARF subroutine type. class LVScopeFunctionType final : public LVScopeFunction { … }; // Class to represent a DWARF Namespace. class LVScopeNamespace final : public LVScope { … }; // Class to represent the binary file being analyzed. class LVScopeRoot final : public LVScope { … }; // Class to represent a DWARF template parameter pack // (DW_TAG_GNU_template_parameter_pack). class LVScopeTemplatePack final : public LVScope { … }; } // end namespace logicalview } // end namespace llvm #endif // LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSCOPE_H