diff options
author | Sergio Durigan Junior <sergiodj@redhat.com> | 2018-10-25 16:46:46 -0400 |
---|---|---|
committer | Sergio Durigan Junior <sergiodj@redhat.com> | 2018-10-29 23:48:37 -0400 |
commit | fd332753fa7050bb9d7c89147e32d285099fe402 (patch) | |
tree | 83f2f3cc2b1bd6c3549d073330d5eddea3c309d0 | |
parent | 9c3adfb9a409a240bb4cf087f0adeb8b1472f67a (diff) | |
download | gdb-fd332753fa7050bb9d7c89147e32d285099fe402.zip gdb-fd332753fa7050bb9d7c89147e32d285099fe402.tar.gz gdb-fd332753fa7050bb9d7c89147e32d285099fe402.tar.bz2 |
Remove relational operators from common/offset-type.h
This patch is a follow-up of:
https://sourceware.org/ml/gdb-patches/2018-10/msg00601.html
It removes the declaration of the relational operators for
common/offset-type.h. As it turns out, these overloads are not being
used when a new offset type is declared, because, according to Pedro
Alves:
I think the functions aren't called because they are templates, and
thus the built-in (non-template) versions take precedence. If you
make them non-templates, then they should be called. But, the
built-ins are fine, so yeah, we can just remove the custom
definitions.
The patch also adjusts the comments on the code.
No regressions introduced.
gdb/ChangeLog:
2018-10-29 Sergio Durigan Junior <sergiodj@redhat.com>
* common/offset-type.h (DEFINE_OFFSET_REL_OP): Delete.
Adjust comments.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/common/offset-type.h | 18 |
2 files changed, 6 insertions, 17 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 51ba04d..0207bec 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-10-29 Sergio Durigan Junior <sergiodj@redhat.com> + + * common/offset-type.h (DEFINE_OFFSET_REL_OP): Delete. + Adjust comments. + 2018-10-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * procfs.c: Include common/pathstuff.h. diff --git a/gdb/common/offset-type.h b/gdb/common/offset-type.h index b480b14..174ad1e 100644 --- a/gdb/common/offset-type.h +++ b/gdb/common/offset-type.h @@ -57,7 +57,7 @@ /* The macro macro is all you need to know use offset types. The rest below is all implementation detail. */ -/* For each enum class type that you want to support relational +/* For each enum class type that you want to support arithmetic operators, declare an "is_offset_type" overload that has exactly one parameter, of type that enum class. E.g.,: @@ -73,22 +73,6 @@ function via ADL. */ -#define DEFINE_OFFSET_REL_OP(OP) \ - template<typename E, \ - typename = decltype (is_offset_type (std::declval<E> ()))> \ - constexpr bool \ - operator OP (E lhs, E rhs) \ - { \ - using underlying = typename std::underlying_type<E>::type; \ - return (static_cast<underlying> (lhs) \ - OP static_cast<underlying> (lhs)); \ - } - -DEFINE_OFFSET_REL_OP(>) -DEFINE_OFFSET_REL_OP(>=) -DEFINE_OFFSET_REL_OP(<) -DEFINE_OFFSET_REL_OP(<=) - /* Adding or subtracting an integer to an offset type shifts the offset. This is like "PTR = PTR + INT" and "PTR += INT". */ |