unwind: EHABISectionIterator `operator!=`, constify `operator-`

Add missing `operator!=` and make `operator-` const for
`EHABISectionIterator`.  This repairs the build of libunwind when
building with GCC.

Patch by Chad Duffin!

Reviewed By: compnerd, libunwind
Differential Revision: https://reviews.llvm.org/D81597
This commit is contained in:
Saleem Abdulrasool 2020-06-18 08:51:44 -07:00
parent 2474421398
commit 2d865ccbd8
1 changed files with 7 additions and 1 deletions

View File

@ -1275,7 +1275,7 @@ struct EHABISectionIterator {
_Self operator+(size_t a) { _Self out = *this; out._i += a; return out; }
_Self operator-(size_t a) { assert(_i >= a); _Self out = *this; out._i -= a; return out; }
size_t operator-(const _Self& other) { return _i - other._i; }
size_t operator-(const _Self& other) const { return _i - other._i; }
bool operator==(const _Self& other) const {
assert(_addressSpace == other._addressSpace);
@ -1283,6 +1283,12 @@ struct EHABISectionIterator {
return _i == other._i;
}
bool operator!=(const _Self& other) const {
assert(_addressSpace == other._addressSpace);
assert(_sects == other._sects);
return _i != other._i;
}
typename A::pint_t operator*() const { return functionAddress(); }
typename A::pint_t functionAddress() const {