mirror of
https://github.com/Z3Prover/z3
synced 2026-02-14 12:51:48 +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>
|
||||
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");
|
||||
if (is_small(a) && is_small(b)) {
|
||||
int64_t _a = a.value64();
|
||||
|
|
|
|||
|
|
@ -99,9 +99,8 @@ private:
|
|||
static constexpr int SMALL_BITS = sizeof(uintptr_t) * 8 - 1;
|
||||
|
||||
// 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<uint64_t>(1) << (SMALL_BITS - 1)) - 1;
|
||||
static constexpr int64_t SMALL_INT_MIN = -(static_cast<int64_t>(static_cast<uint64_t>(1) << (SMALL_BITS - 1)));
|
||||
static constexpr int64_t SMALL_INT_MAX = (static_cast<int64_t>(1) << (SMALL_BITS - 1)) - 1;
|
||||
static constexpr int64_t SMALL_INT_MIN = -(static_cast<int64_t>(1) << (SMALL_BITS - 1));
|
||||
|
||||
static bool fits_in_small(int64_t v) {
|
||||
return v >= SMALL_INT_MIN && v <= SMALL_INT_MAX;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue