mirror of
https://github.com/Z3Prover/z3
synced 2026-05-01 08:03:45 +00:00
Remove nonsensical assertion and revert to simpler shift for SMALL_INT constants
Co-authored-by: nunoplopes <2998477+nunoplopes@users.noreply.github.com>
This commit is contained in:
parent
46bc45d904
commit
f2ae873fde
2 changed files with 2 additions and 4 deletions
|
|
@ -939,7 +939,6 @@ void mpz_manager<SYNCH>::big_rem(mpz const & a, mpz const & b, mpz & c) {
|
||||||
|
|
||||||
template<bool SYNCH>
|
template<bool SYNCH>
|
||||||
void mpz_manager<SYNCH>::gcd(mpz const & a, mpz const & b, mpz & c) {
|
void mpz_manager<SYNCH>::gcd(mpz const & a, mpz const & b, mpz & c) {
|
||||||
static_assert(sizeof(int) == sizeof(int), "size mismatch");
|
|
||||||
static_assert(sizeof(mpz) <= 16, "mpz size overflow");
|
static_assert(sizeof(mpz) <= 16, "mpz size overflow");
|
||||||
if (is_small(a) && is_small(b)) {
|
if (is_small(a) && is_small(b)) {
|
||||||
int64_t _a = a.value64();
|
int64_t _a = a.value64();
|
||||||
|
|
|
||||||
|
|
@ -99,9 +99,8 @@ private:
|
||||||
static constexpr int SMALL_BITS = sizeof(uintptr_t) * 8 - 1;
|
static constexpr int SMALL_BITS = sizeof(uintptr_t) * 8 - 1;
|
||||||
|
|
||||||
// Maximum and minimum values that can be stored as small integers
|
// Maximum and minimum values that can be stored as small integers
|
||||||
// Use unsigned arithmetic to avoid undefined behavior on left shift
|
static constexpr int64_t SMALL_INT_MAX = (static_cast<int64_t>(1) << (SMALL_BITS - 1)) - 1;
|
||||||
static constexpr int64_t SMALL_INT_MAX = (static_cast<uint64_t>(1) << (SMALL_BITS - 1)) - 1;
|
static constexpr int64_t SMALL_INT_MIN = -(static_cast<int64_t>(1) << (SMALL_BITS - 1));
|
||||||
static constexpr int64_t SMALL_INT_MIN = -(static_cast<int64_t>(static_cast<uint64_t>(1) << (SMALL_BITS - 1)));
|
|
||||||
|
|
||||||
static bool fits_in_small(int64_t v) {
|
static bool fits_in_small(int64_t v) {
|
||||||
return v >= SMALL_INT_MIN && v <= SMALL_INT_MAX;
|
return v >= SMALL_INT_MIN && v <= SMALL_INT_MAX;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue