From e51e880e75d79687b54a71351266e29ee349b4b8 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 26 Jun 2024 20:11:21 +0200 Subject: [PATCH] gh-120593: Fix const qualifier in _PyLong_CompactValue() (#121053) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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)); --- Include/cpython/longintrepr.h | 4 ++-- Include/internal/pycore_long.h | 4 ++-- Objects/longobject.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Include/cpython/longintrepr.h b/Include/cpython/longintrepr.h index 66623780ca9..d841c043f37 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 8513695c22e..2bf6ff459dd 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 a3a59a20f0b..86afec9a414 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); }