Skip to content

Commit 61d8bb3

Browse files
committed
no need to exclude negative
1 parent 0173413 commit 61d8bb3

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

Python/specialize.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2417,31 +2417,30 @@ binary_op_fail_kind(int oparg, PyObject *lhs, PyObject *rhs)
24172417
/* long-long */
24182418

24192419
static inline int
2420-
is_nonnegative_compactlong(PyObject *v)
2420+
is_compactlong(PyObject *v)
24212421
{
24222422
return PyLong_CheckExact(v) &&
2423-
(!_PyLong_IsNegative((PyLongObject *)v)) &&
24242423
_PyLong_IsCompact((PyLongObject *)v);
24252424
}
24262425

24272426
static int
2428-
nonnegative_compactlongs_guard(PyObject *lhs, PyObject *rhs)
2427+
compactlongs_guard(PyObject *lhs, PyObject *rhs)
24292428
{
2430-
return (is_nonnegative_compactlong(lhs) && is_nonnegative_compactlong(rhs));
2429+
return (is_compactlong(lhs) && is_compactlong(rhs));
24312430
}
24322431

2433-
#define NONNEGATIVE_LONGS_ACTION(NAME, OP) \
2432+
#define BITWISE_LONGS_ACTION(NAME, OP) \
24342433
static PyObject * \
24352434
(NAME)(PyObject *lhs, PyObject *rhs) \
24362435
{ \
24372436
Py_ssize_t rhs_val = _PyLong_CompactValue((PyLongObject *)rhs); \
24382437
Py_ssize_t lhs_val = _PyLong_CompactValue((PyLongObject *)lhs); \
24392438
return PyLong_FromLong(lhs_val OP rhs_val); \
24402439
}
2441-
NONNEGATIVE_LONGS_ACTION(nonnegative_compactlongs_or, |)
2442-
NONNEGATIVE_LONGS_ACTION(nonnegative_compactlongs_and, &)
2443-
NONNEGATIVE_LONGS_ACTION(nonnegative_compactlongs_xor, ^)
2444-
#undef NONNEGATIVE_LONGS_ACTION
2440+
BITWISE_LONGS_ACTION(compactlongs_or, |)
2441+
BITWISE_LONGS_ACTION(compactlongs_and, &)
2442+
BITWISE_LONGS_ACTION(compactlongs_xor, ^)
2443+
#undef BITWISE_LONGS_ACTION
24452444

24462445
/* float-long */
24472446

@@ -2495,10 +2494,10 @@ LONG_FLOAT_ACTION(compactlong_float_multiply, *)
24952494
LONG_FLOAT_ACTION(compactlong_float_true_div, /)
24962495
#undef LONG_FLOAT_ACTION
24972496

2498-
static _PyBinaryOpSpecializationDescr nonnegative_compactlongs_specs[NB_OPARG_LAST+1] = {
2499-
[NB_OR] = {nonnegative_compactlongs_guard, nonnegative_compactlongs_or},
2500-
[NB_AND] = {nonnegative_compactlongs_guard, nonnegative_compactlongs_and},
2501-
[NB_XOR] = {nonnegative_compactlongs_guard, nonnegative_compactlongs_xor},
2497+
static _PyBinaryOpSpecializationDescr compactlongs_specs[NB_OPARG_LAST+1] = {
2498+
[NB_OR] = {compactlongs_guard, compactlongs_or},
2499+
[NB_AND] = {compactlongs_guard, compactlongs_and},
2500+
[NB_XOR] = {compactlongs_guard, compactlongs_xor},
25022501
};
25032502

25042503
static _PyBinaryOpSpecializationDescr float_compactlong_specs[NB_OPARG_LAST+1] = {
@@ -2529,7 +2528,7 @@ binary_op_extended_specialization(PyObject *lhs, PyObject *rhs, int oparg,
25292528

25302529
LOOKUP_SPEC(compactlong_float_specs, oparg);
25312530
LOOKUP_SPEC(float_compactlong_specs, oparg);
2532-
LOOKUP_SPEC(nonnegative_compactlongs_specs, oparg);
2531+
LOOKUP_SPEC(compactlongs_specs, oparg);
25332532
#undef LOOKUP_SPEC
25342533
return 0;
25352534
}

Tools/c-analyzer/cpython/ignored.tsv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ Python/pylifecycle.c - INTERPRETER_TRAMPOLINE_CODEDEF -
378378
Python/pystate.c - initial -
379379
Python/specialize.c - adaptive_opcodes -
380380
Python/specialize.c - cache_requirements -
381-
Python/specialize.c - nonnegative_compactlongs_specs -
381+
Python/specialize.c - compactlongs_specs -
382382
Python/specialize.c - float_compactlong_specs -
383383
Python/specialize.c - compactlong_float_specs -
384384
Python/stdlib_module_names.h - _Py_stdlib_module_names -

0 commit comments

Comments
 (0)