#include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/DebugInfo/DWARF/DWARFContext.h"
#include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugLine.h"
#include "llvm/DebugInfo/DWARF/DWARFObject.h"
#include "llvm/DebugInfo/DWARF/DWARFSection.h"
#include "llvm/DebugInfo/DWARF/DWARFUnit.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/WithColor.h"
#include "llvm/Support/raw_ostream.h"
#include <cinttypes>
#include <cstdint>
#include <limits>
#include <optional>
usingnamespacellvm;
usingnamespacedwarf;
static const DWARFFormValue::FormClass DWARF5FormClasses[] = …;
DWARFFormValue DWARFFormValue::createFromSValue(dwarf::Form F, int64_t V) { … }
DWARFFormValue DWARFFormValue::createFromUValue(dwarf::Form F, uint64_t V) { … }
DWARFFormValue DWARFFormValue::createFromPValue(dwarf::Form F, const char *V) { … }
DWARFFormValue DWARFFormValue::createFromBlockValue(dwarf::Form F,
ArrayRef<uint8_t> D) { … }
DWARFFormValue DWARFFormValue::createFromUnit(dwarf::Form F, const DWARFUnit *U,
uint64_t *OffsetPtr) { … }
bool DWARFFormValue::skipValue(dwarf::Form Form, DataExtractor DebugInfoData,
uint64_t *OffsetPtr,
const dwarf::FormParams Params) { … }
bool DWARFFormValue::isFormClass(DWARFFormValue::FormClass FC) const { … }
bool DWARFFormValue::extractValue(const DWARFDataExtractor &Data,
uint64_t *OffsetPtr, dwarf::FormParams FP,
const DWARFContext *Ctx,
const DWARFUnit *CU) { … }
void DWARFFormValue::dumpAddress(raw_ostream &OS, uint8_t AddressSize,
uint64_t Address) { … }
void DWARFFormValue::dumpSectionedAddress(raw_ostream &OS,
DIDumpOptions DumpOpts,
object::SectionedAddress SA) const { … }
void DWARFFormValue::dumpAddressSection(const DWARFObject &Obj, raw_ostream &OS,
DIDumpOptions DumpOpts,
uint64_t SectionIndex) { … }
void DWARFFormValue::dump(raw_ostream &OS, DIDumpOptions DumpOpts) const { … }
void DWARFFormValue::dumpString(raw_ostream &OS) const { … }
Expected<const char *> DWARFFormValue::getAsCString() const { … }
std::optional<uint64_t> DWARFFormValue::getAsAddress() const { … }
std::optional<object::SectionedAddress> DWARFFormValue::getAsSectionedAddress(
const ValueType &Value, const dwarf::Form Form, const DWARFUnit *U) { … }
std::optional<object::SectionedAddress>
DWARFFormValue::getAsSectionedAddress() const { … }
std::optional<uint64_t> DWARFFormValue::getAsRelativeReference() const { … }
std::optional<uint64_t> DWARFFormValue::getAsDebugInfoReference() const { … }
std::optional<uint64_t> DWARFFormValue::getAsSignatureReference() const { … }
std::optional<uint64_t> DWARFFormValue::getAsSupplementaryReference() const { … }
std::optional<uint64_t> DWARFFormValue::getAsSectionOffset() const { … }
std::optional<uint64_t> DWARFFormValue::getAsUnsignedConstant() const { … }
std::optional<int64_t> DWARFFormValue::getAsSignedConstant() const { … }
std::optional<ArrayRef<uint8_t>> DWARFFormValue::getAsBlock() const { … }
std::optional<uint64_t> DWARFFormValue::getAsCStringOffset() const { … }
std::optional<uint64_t> DWARFFormValue::getAsReferenceUVal() const { … }
std::optional<std::string>
DWARFFormValue::getAsFile(DILineInfoSpecifier::FileLineInfoKind Kind) const { … }
bool llvm::dwarf::doesFormBelongToClass(dwarf::Form Form, DWARFFormValue::FormClass FC,
uint16_t DwarfVersion) { … }