From 2d865ccbd8c47fe94af04a6cffd02c45a24e2ffb Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Thu, 18 Jun 2020 08:51:44 -0700 Subject: [PATCH] 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 --- libunwind/src/UnwindCursor.hpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libunwind/src/UnwindCursor.hpp b/libunwind/src/UnwindCursor.hpp index 8200eeee4eaa..f346c720d22c 100644 --- a/libunwind/src/UnwindCursor.hpp +++ b/libunwind/src/UnwindCursor.hpp @@ -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 {