10 #ifndef LLVM_LIB_DEBUGINFO_DWARFABBREVIATIONDECLARATION_H
11 #define LLVM_LIB_DEBUGINFO_DWARFABBREVIATIONDECLARATION_H
45 return Form == dwarf::DW_FORM_implicit_const;
69 if (idx < AttributeSpecs.
size())
70 return AttributeSpecs[idx].
Form;
110 struct FixedSizeInfo {
118 uint8_t NumDwarfOffsets;
121 : NumBytes(0), NumAddrs(0), NumRefAddrs(0), NumDwarfOffsets(0) {}
128 size_t getByteSize(
const DWARFUnit &U)
const;
133 uint8_t CodeByteSize;
138 Optional<FixedSizeInfo> FixedAttributeSize;
Optional< int64_t > ByteSizeOrValue
The following field is used for ByteSize for non-implicit_const attributes and as value for implicit_...
bool extract(DataExtractor Data, uint32_t *OffsetPtr)
bool isImplicitConst() const
Optional< DWARFFormValue > getAttributeValue(const uint32_t DIEOffset, const dwarf::Attribute Attr, const DWARFUnit &U) const
Extract a DWARF form value from a DIE specified by DIE offset.
Optional< size_t > getFixedAttributesByteSize(const DWARFUnit &U) const
iterator_range< AttributeSpecVector::const_iterator > attr_iterator_range
void dump(raw_ostream &OS) const
LLVM_ATTRIBUTE_ALWAYS_INLINE iterator begin()
DWARFAbbreviationDeclaration()
A range adaptor for a pair of iterators.
AttributeSpec(dwarf::Attribute A, dwarf::Form F, Optional< int64_t > V)
Optional< int64_t > getByteSize(const DWARFUnit &U) const
Get the fixed byte size of this Form if possible.
LLVM_ATTRIBUTE_ALWAYS_INLINE iterator end()
Optional< uint32_t > findAttributeIndex(dwarf::Attribute attr) const
Get the index of the specified attribute.
attr_iterator_range attributes() const
LLVM_ATTRIBUTE_ALWAYS_INLINE size_type size() const
dwarf::Form getFormByIndex(uint32_t idx) const
dwarf::Tag getTag() const
This class implements an extremely fast bulk output stream that can only output to a stream...
SmallVector< AttributeSpec, 8 > AttributeSpecVector
static GCRegistry::Add< ErlangGC > A("erlang","erlang-compatible garbage collector")