gh-120593: Fix const qualifier in _PyLong_CompactValue() (#121053)

Remove the const qualifier of the argument of functions:

* _PyLong_IsCompact()
* _PyLong_CompactValue()

Py_TYPE() argument is not const.

Fix the compiler warning:

  Include/cpython/longintrepr.h: In function ‘_PyLong_CompactValue’:
  Include/pyport.h:19:31: error: cast discards ‘const’ qualifier from
  pointer target type [-Werror=cast-qual]
    (...)
  Include/cpython/longintrepr.h:133:30: note: in expansion of macro
  ‘Py_TYPE’
    assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS));
This commit is contained in:
Victor Stinner 2024-06-26 20:11:21 +02:00 committed by GitHub
parent 9cd2dcbb87
commit e51e880e75
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 6 additions and 6 deletions

View File

@ -119,7 +119,7 @@ PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits(
static inline int static inline int
_PyLong_IsCompact(const PyLongObject* op) { _PyLong_IsCompact(PyLongObject* op) {
assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)); assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS));
return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS); return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS);
} }
@ -127,7 +127,7 @@ _PyLong_IsCompact(const PyLongObject* op) {
#define PyUnstable_Long_IsCompact _PyLong_IsCompact #define PyUnstable_Long_IsCompact _PyLong_IsCompact
static inline Py_ssize_t static inline Py_ssize_t
_PyLong_CompactValue(const PyLongObject *op) _PyLong_CompactValue(PyLongObject *op)
{ {
Py_ssize_t sign; Py_ssize_t sign;
assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)); assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS));

View File

@ -240,7 +240,7 @@ static inline int
_PyLong_CompactSign(const PyLongObject *op) _PyLong_CompactSign(const PyLongObject *op)
{ {
assert(PyLong_Check(op)); assert(PyLong_Check(op));
assert(_PyLong_IsCompact(op)); assert(_PyLong_IsCompact((PyLongObject *)op));
return 1 - (op->long_value.lv_tag & SIGN_MASK); return 1 - (op->long_value.lv_tag & SIGN_MASK);
} }
@ -248,7 +248,7 @@ static inline int
_PyLong_NonCompactSign(const PyLongObject *op) _PyLong_NonCompactSign(const PyLongObject *op)
{ {
assert(PyLong_Check(op)); assert(PyLong_Check(op));
assert(!_PyLong_IsCompact(op)); assert(!_PyLong_IsCompact((PyLongObject *)op));
return 1 - (op->long_value.lv_tag & SIGN_MASK); return 1 - (op->long_value.lv_tag & SIGN_MASK);
} }

View File

@ -6672,12 +6672,12 @@ _PyLong_FiniTypes(PyInterpreterState *interp)
int int
PyUnstable_Long_IsCompact(const PyLongObject* op) { PyUnstable_Long_IsCompact(const PyLongObject* op) {
return _PyLong_IsCompact(op); return _PyLong_IsCompact((PyLongObject*)op);
} }
#undef PyUnstable_Long_CompactValue #undef PyUnstable_Long_CompactValue
Py_ssize_t Py_ssize_t
PyUnstable_Long_CompactValue(const PyLongObject* op) { PyUnstable_Long_CompactValue(const PyLongObject* op) {
return _PyLong_CompactValue(op); return _PyLong_CompactValue((PyLongObject*)op);
} }