From: Victor Stinner Date: Wed, 26 Jun 2024 18:11:21 +0000 (+0200) Subject: gh-120593: Fix const qualifier in _PyLong_CompactValue() (#121053) X-Git-Tag: v3.14.0a1~1317 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e51e880e75d79687b54a71351266e29ee349b4b8;p=thirdparty%2FPython%2Fcpython.git 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)); --- diff --git a/Include/cpython/longintrepr.h b/Include/cpython/longintrepr.h index 66623780ca93..d841c043f37f 100644 --- a/Include/cpython/longintrepr.h +++ b/Include/cpython/longintrepr.h @@ -119,7 +119,7 @@ PyAPI_FUNC(PyLongObject*) _PyLong_FromDigits( static inline int -_PyLong_IsCompact(const PyLongObject* op) { +_PyLong_IsCompact(PyLongObject* op) { assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)); 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 static inline Py_ssize_t -_PyLong_CompactValue(const PyLongObject *op) +_PyLong_CompactValue(PyLongObject *op) { Py_ssize_t sign; assert(PyType_HasFeature(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)); diff --git a/Include/internal/pycore_long.h b/Include/internal/pycore_long.h index 8513695c22e7..2bf6ff459ddc 100644 --- a/Include/internal/pycore_long.h +++ b/Include/internal/pycore_long.h @@ -240,7 +240,7 @@ static inline int _PyLong_CompactSign(const PyLongObject *op) { assert(PyLong_Check(op)); - assert(_PyLong_IsCompact(op)); + assert(_PyLong_IsCompact((PyLongObject *)op)); return 1 - (op->long_value.lv_tag & SIGN_MASK); } @@ -248,7 +248,7 @@ static inline int _PyLong_NonCompactSign(const PyLongObject *op) { assert(PyLong_Check(op)); - assert(!_PyLong_IsCompact(op)); + assert(!_PyLong_IsCompact((PyLongObject *)op)); return 1 - (op->long_value.lv_tag & SIGN_MASK); } diff --git a/Objects/longobject.c b/Objects/longobject.c index a3a59a20f0bb..86afec9a4141 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -6672,12 +6672,12 @@ _PyLong_FiniTypes(PyInterpreterState *interp) int PyUnstable_Long_IsCompact(const PyLongObject* op) { - return _PyLong_IsCompact(op); + return _PyLong_IsCompact((PyLongObject*)op); } #undef PyUnstable_Long_CompactValue Py_ssize_t PyUnstable_Long_CompactValue(const PyLongObject* op) { - return _PyLong_CompactValue(op); + return _PyLong_CompactValue((PyLongObject*)op); }