Rewrite gdb_mpz::operator==
authorTom Tromey <tromey@adacore.com>
Mon, 17 Apr 2023 18:59:57 +0000 (12:59 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 26 Apr 2023 14:24:15 +0000 (08:24 -0600)
commit3ad6c165ca098a0fa4491893a75b4b1581698484
tree982830f1243692e0c643d0a48649e5115a7a68a9
parent19e012c813f00e047355e8b45b2c8c85825d37e0
Rewrite gdb_mpz::operator==

Simon pointed out that the recent changes to gdb_mpz caused a build
failure on amd64 macOS.  It turns out to be somewhat difficult to
overload a method in a way that will work "naturally" for all integer
types; especially in a case like gdb_mpz::operator==, where it's
desirable to special case all integer types that are no wider than
'long'.

After a false start, I came up with this patch, which seems to work.
It applies the desirable GMP special cases directly in the body,
rather than via overloads.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
gdb/gmp-utils.h