llvm/llvm/tools/llvm-objdump/ELFDump.cpp

//===-- ELFDump.cpp - ELF-specific dumper -----------------------*- 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
//
//===----------------------------------------------------------------------===//
///
/// \file
/// This file implements the ELF-specific dumper for llvm-objdump.
///
//===----------------------------------------------------------------------===//

#include "ELFDump.h"

#include "llvm-objdump.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/Object/ELFObjectFile.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"

usingnamespacellvm;
usingnamespacellvm::object;
usingnamespacellvm::objdump;

namespace {
template <typename ELFT> class ELFDumper : public Dumper {};
} // namespace

template <class ELFT>
static std::unique_ptr<Dumper> createDumper(const ELFObjectFile<ELFT> &Obj) {}

std::unique_ptr<Dumper>
objdump::createELFDumper(const object::ELFObjectFileBase &Obj) {}

template <class ELFT>
static Expected<StringRef> getDynamicStrTab(const ELFFile<ELFT> &Elf) {}

template <class ELFT>
static Error getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
                                      const RelocationRef &RelRef,
                                      SmallVectorImpl<char> &Result) {}

Error objdump::getELFRelocationValueString(const ELFObjectFileBase *Obj,
                                           const RelocationRef &Rel,
                                           SmallVectorImpl<char> &Result) {}

template <class ELFT>
static uint64_t getSectionLMA(const ELFFile<ELFT> &Obj,
                              const object::ELFSectionRef &Sec) {}

uint64_t objdump::getELFSectionLMA(const object::ELFSectionRef &Sec) {}

template <class ELFT> void ELFDumper<ELFT>::printDynamicSection() {}

template <class ELFT> void ELFDumper<ELFT>::printProgramHeaders() {}

template <typename ELFT> void ELFDumper<ELFT>::printDynamicRelocations() {}

template <class ELFT>
void ELFDumper<ELFT>::printSymbolVersionDependency(
    const typename ELFT::Shdr &Sec) {}

template <class ELFT>
static void printSymbolVersionDefinition(const typename ELFT::Shdr &Shdr,
                                         ArrayRef<uint8_t> Contents,
                                         StringRef StrTab) {}

template <class ELFT> void ELFDumper<ELFT>::printSymbolVersion() {}

template <class ELFT> void ELFDumper<ELFT>::printPrivateHeaders() {}