Address range collection that merges intersecting and adjacent ranges.

Synopsis

Declared in <llvm/ADT/AddressRanges.h>

class AddressRanges
    : public AddressRangesBase<AddressRange>

Description

This class keeps a sorted vector of AddressRange objects and can perform insertions and searches efficiently. Intersecting([100,200), [150,300))]] and adjacent([100,200), [200,300)) address ranges are combined during]] insertion.

Base Classes

Name

Description

AddressRangesBase<AddressRange>

Base class for sorted, non‐overlapping address range collections.

Member Functions

Name

Description

begin

Return an iterator to the first stored range.

clear

Remove all ranges from the collection.

contains

contains overloads

empty

Return true if the collection holds no ranges.

end

Return an iterator past the last stored range.

getRangeThatContains

Return the stored entry that contains Addr, if any.

insert

Insert Range, merging with any intersecting or adjacent ranges.

operator[]

Return the range entry at index I.

reserve

Reserve capacity for at least Capacity range entries.

size

Return the number of stored ranges.

operator==

Return true if both collections store the same ranges in order.

Protected Type Aliases

Name

Description

Collection

Sorted vector of address‐range‐like entries.

Protected Member Functions

Name

Description

find

Find a stored range that fully contains []`Start,` End).

Protected Data Members

Name

Description

Ranges

Storage for the normalized, non‐overlapping ranges.

Non-Member Functions

Name

Description

gsym::decodeRanges

Decode a collection of address ranges from a binary data stream.

gsym::encodeRanges

Encode a collection of address ranges into a binary stream.

Created with MrDocs