ΒΆllvm::Error mergeIdRecords(
llvm::codeview::MergingTypeTableBuilder& Dest,
ArrayRef<llvm::codeview::TypeIndex> Types,
SmallVectorImpl<llvm::codeview::TypeIndex>&
SourceToDest,
const llvm::codeview::CVTypeArray& Ids)
llvm::Error mergeIdRecords(
llvm::codeview::MergingTypeTableBuilder& Dest,
ArrayRef<llvm::codeview::TypeIndex> Types,
SmallVectorImpl<llvm::codeview::TypeIndex>&
SourceToDest,
const llvm::codeview::CVTypeArray& Ids)
Description
Merge one set of id records into another. This method assumes that all records are id records, and there are no Type records present. However, since Id records can refer back to Type records, this method assumes that the referenced type records have also been merged into another type stream (for example using the above method), and accepts the mapping from source to dest for that stream so that it can re-write the type record mappings accordingly.
Declared at: llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h:63
Parameters
- llvm::codeview::MergingTypeTableBuilder& Dest
- The table to store the re-written id records into.
- ArrayRef<llvm::codeview::TypeIndex> Types
- The mapping to use for the type records that these id records refer to.
- SmallVectorImpl<llvm::codeview::TypeIndex>& SourceToDest
- A vector, indexed by the TypeIndex in the source id stream, that contains the index of the corresponding id record in the destination stream.
- const llvm::codeview::CVTypeArray& Ids
- The collection of id records to merge in.
Returns
Error::success() if the operation succeeded, otherwise an appropriate error code.