llvm/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp

//===-- DWARFDIE.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
//
//===----------------------------------------------------------------------===//

#include "DWARFDIE.h"

#include "DWARFASTParser.h"
#include "DWARFDebugInfo.h"
#include "DWARFDebugInfoEntry.h"
#include "DWARFDeclContext.h"
#include "DWARFUnit.h"
#include "lldb/Symbol/Type.h"

#include "llvm/ADT/iterator.h"
#include "llvm/BinaryFormat/Dwarf.h"

usingnamespacelldb_private;
usingnamespacelldb_private::dwarf;
usingnamespacelldb_private::plugin::dwarf;

namespace {

/// Iterate through all DIEs elaborating (i.e. reachable by a chain of
/// DW_AT_specification, DW_AT_abstract_origin and/or DW_AT_signature
/// attributes) a given DIE. For convenience, the starting die is included in
/// the sequence as the first item.
class ElaboratingDIEIterator
    : public llvm::iterator_facade_base<
          ElaboratingDIEIterator, std::input_iterator_tag, DWARFDIE,
          std::ptrdiff_t, DWARFDIE *, DWARFDIE *> {};

llvm::iterator_range<ElaboratingDIEIterator>
elaborating_dies(const DWARFDIE &die) {}
} // namespace

DWARFDIE
DWARFDIE::GetParent() const {}

DWARFDIE
DWARFDIE::GetFirstChild() const {}

DWARFDIE
DWARFDIE::GetSibling() const {}

DWARFDIE
DWARFDIE::GetReferencedDIE(const dw_attr_t attr) const {}

DWARFDIE
DWARFDIE::GetDIE(dw_offset_t die_offset) const {}

DWARFDIE
DWARFDIE::GetAttributeValueAsReferenceDIE(const dw_attr_t attr) const {}

DWARFDIE
DWARFDIE::LookupDeepestBlock(lldb::addr_t address) const {}

const char *DWARFDIE::GetMangledName() const {}

const char *DWARFDIE::GetPubname() const {}

// GetName
//
// Get value of the DW_AT_name attribute and place that value into the supplied
// stream object. If the DIE is a NULL object "NULL" is placed into the stream,
// and if no DW_AT_name attribute exists for the DIE then nothing is printed.
void DWARFDIE::GetName(Stream &s) const {}

// AppendTypeName
//
// Follows the type name definition down through all needed tags to end up with
// a fully qualified type name and dump the results to the supplied stream.
// This is used to show the name of types given a type identifier.
void DWARFDIE::AppendTypeName(Stream &s) const {}

lldb_private::Type *DWARFDIE::ResolveType() const {}

lldb_private::Type *DWARFDIE::ResolveTypeUID(const DWARFDIE &die) const {}

static void GetDeclContextImpl(DWARFDIE die,
                               llvm::SmallSet<lldb::user_id_t, 4> &seen,
                               std::vector<CompilerContext> &context) {}

std::vector<CompilerContext> DWARFDIE::GetDeclContext() const {}

static void GetTypeLookupContextImpl(DWARFDIE die,
                                     llvm::SmallSet<lldb::user_id_t, 4> &seen,
                                     std::vector<CompilerContext> &context) {}

std::vector<CompilerContext> DWARFDIE::GetTypeLookupContext() const {}

static DWARFDeclContext GetDWARFDeclContextImpl(DWARFDIE die) {}

DWARFDeclContext DWARFDIE::GetDWARFDeclContext() const {}

static DWARFDIE GetParentDeclContextDIEImpl(DWARFDIE die) {}

DWARFDIE
DWARFDIE::GetParentDeclContextDIE() const {}

bool DWARFDIE::IsStructUnionOrClass() const {}

bool DWARFDIE::IsMethod() const {}

bool DWARFDIE::GetDIENamesAndRanges(
    const char *&name, const char *&mangled, DWARFRangeList &ranges,
    std::optional<int> &decl_file, std::optional<int> &decl_line,
    std::optional<int> &decl_column, std::optional<int> &call_file,
    std::optional<int> &call_line, std::optional<int> &call_column,
    lldb_private::DWARFExpressionList *frame_base) const {}

llvm::iterator_range<DWARFDIE::child_iterator> DWARFDIE::children() const {}