35 "Invalid line block record size");
37 if (LineInfoSize >
Size)
39 "Invalid line block record size");
78 Blocks.emplace_back(
Offset);
82 Block &
B = Blocks.back();
86 B.Lines.push_back(LNE);
93 Block &
B = Blocks.back();
94 assert(
B.Lines.size() ==
B.Columns.size());
100 B.Columns.push_back(CNE);
105 Header.CodeSize = CodeSize;
107 Header.RelocOffset = RelocOffset;
108 Header.RelocSegment = RelocSegment;
113 for (
const auto &
B : Blocks) {
115 assert(
B.Lines.size() ==
B.Columns.size() ||
B.Columns.empty());
122 BlockHeader.
NameIndex =
B.ChecksumBufferOffset;
139 for (
const auto &
B : Blocks) {
151 RelocSegment = Segment;
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Provides read only access to a subclass of BinaryStream.
Error readObject(const T *&Dest)
Get a pointer to an object of type T from the underlying stream, as if by memcpy, and store the resul...
uint64_t bytesRemaining() const
Error readArray(ArrayRef< T > &Array, uint32_t NumElements)
Get a reference to a NumElements element array of objects of type T from the underlying stream as if ...
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
Provides write only access to a subclass of WritableBinaryStream.
Error writeArray(ArrayRef< T > Array)
Writes an array of objects of type T to the underlying stream, as if by using memcpy.
Error writeObject(const T &Obj)
Writes the object Obj to the underlying stream, as if by using memcpy.
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
StringRef - Represent a constant reference to a string, i.e.
const Extractor & getExtractor() const
uint32_t mapChecksumOffset(StringRef FileName) const
bool hasColumnInfo() const
DebugLinesSubsectionRef()
Error initialize(BinaryStreamReader Reader)
void setRelocationAddress(uint16_t Segment, uint32_t Offset)
DebugLinesSubsection(DebugChecksumsSubsection &Checksums, DebugStringTableSubsection &Strings)
void setCodeSize(uint32_t Size)
bool hasColumnInfo() const
void addLineInfo(uint32_t Offset, const LineInfo &Line)
void setFlags(LineFlags Flags)
Error commit(BinaryStreamWriter &Writer) const override
void addLineAndColumnInfo(uint32_t Offset, const LineInfo &Line, uint32_t ColStart, uint32_t ColEnd)
void createBlock(StringRef FileName)
uint32_t calculateSerializedSize() const override
Represents a read-write view of a CodeView string table.
const LineFragmentHeader * Header
Error operator()(BinaryStreamRef Stream, uint32_t &Len, LineColumnEntry &Item)
This is an optimization pass for GlobalISel generic memory operations.
support::ulittle16_t StartColumn
support::ulittle16_t EndColumn
FixedStreamArray< ColumnNumberEntry > Columns
support::ulittle32_t NameIndex
FixedStreamArray< LineNumberEntry > LineNumbers
support::ulittle32_t Offset
support::ulittle32_t Flags