36 "Invalid line block record size");
38 if (LineInfoSize > Size)
40 "Invalid line block record size");
79 Blocks.emplace_back(Offset);
83 Block &
B = Blocks.back();
87 B.Lines.push_back(LNE);
94 Block &
B = Blocks.back();
95 assert(B.Lines.size() == B.Columns.size());
101 B.Columns.push_back(CNE);
114 for (
const auto &
B : Blocks) {
116 assert(
B.Lines.size() ==
B.Columns.size() ||
B.Columns.empty());
123 BlockHeader.
NameIndex =
B.ChecksumBufferOffset;
140 for (
const auto &
B : Blocks) {
152 RelocSegment = Segment;
Error writeObject(const T &Obj)
Writes the object Obj to the underlying stream, as if by using memcpy.
support::ulittle32_t NameIndex
This class represents lattice values for constants.
Error operator()(BinaryStreamRef Stream, uint32_t &Len, LineColumnEntry &Item)
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...
const LineFragmentHeader * Header
support::ulittle32_t Flags
void setRelocationAddress(uint16_t Segment, uint32_t Offset)
void addLineAndColumnInfo(uint32_t Offset, const LineInfo &Line, uint32_t ColStart, uint32_t ColEnd)
ArrayRef< T > makeArrayRef(const T &OneElt)
Construct an ArrayRef from a single element.
FixedStreamArray< ColumnNumberEntry > Columns
DebugLinesSubsection(DebugChecksumsSubsection &Checksums, DebugStringTableSubsection &Strings)
Error commit(BinaryStreamWriter &Writer) const override
Error writeArray(ArrayRef< T > Array)
Writes an array of objects of type T to the underlying stream, as if by using memcpy.
uint32_t calculateSerializedSize() const override
uint32_t getRawData() const
uint32_t mapChecksumOffset(StringRef FileName) const
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
Provides write only access to a subclass of WritableBinaryStream.
void setCodeSize(uint32_t Size)
support::ulittle16_t EndColumn
void setFlags(LineFlags Flags)
void createBlock(StringRef FileName)
static ErrorSuccess success()
Create a success value.
Represents a read-write view of a CodeView string table.
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
DebugLinesSubsectionRef()
bool hasColumnInfo() const
uint32_t bytesRemaining() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
const Extractor & getExtractor() const
Lightweight error class with error context and mandatory checking.
Provides read only access to a subclass of BinaryStream.
StringRef - Represent a constant reference to a string, i.e.
Error initialize(BinaryStreamReader Reader)
FixedStreamArray< LineNumberEntry > LineNumbers
support::ulittle16_t StartColumn
void addLineInfo(uint32_t Offset, const LineInfo &Line)
bool hasColumnInfo() const
support::ulittle32_t Offset
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 ...