summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS.d/next/Build/2024-06-27-18-03-20.gh-issue-121082.w3AfRx.rst1
-rw-r--r--Python/specialize.c5
2 files changed, 4 insertions, 2 deletions
diff --git a/Misc/NEWS.d/next/Build/2024-06-27-18-03-20.gh-issue-121082.w3AfRx.rst b/Misc/NEWS.d/next/Build/2024-06-27-18-03-20.gh-issue-121082.w3AfRx.rst
new file mode 100644
index 0000000..7657672
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2024-06-27-18-03-20.gh-issue-121082.w3AfRx.rst
@@ -0,0 +1 @@
+Fix build failure when the developer use ``--enable-pystats`` arguments in configuration command after #118450.
diff --git a/Python/specialize.c b/Python/specialize.c
index dc0e319..497feca 100644
--- a/Python/specialize.c
+++ b/Python/specialize.c
@@ -2364,7 +2364,8 @@ _Py_Specialize_ForIter(_PyStackRef iter, _Py_CODEUNIT *instr, int oparg)
assert(ENABLE_SPECIALIZATION);
assert(_PyOpcode_Caches[FOR_ITER] == INLINE_CACHE_ENTRIES_FOR_ITER);
_PyForIterCache *cache = (_PyForIterCache *)(instr + 1);
- PyTypeObject *tp = Py_TYPE(PyStackRef_AsPyObjectBorrow(iter));
+ PyObject *iter_o = PyStackRef_AsPyObjectBorrow(iter);
+ PyTypeObject *tp = Py_TYPE(iter_o);
if (tp == &PyListIter_Type) {
instr->op.code = FOR_ITER_LIST;
goto success;
@@ -2389,7 +2390,7 @@ _Py_Specialize_ForIter(_PyStackRef iter, _Py_CODEUNIT *instr, int oparg)
goto success;
}
SPECIALIZATION_FAIL(FOR_ITER,
- _PySpecialization_ClassifyIterator(iter));
+ _PySpecialization_ClassifyIterator(iter_o));
failure:
STAT_INC(FOR_ITER, failure);
instr->op.code = FOR_ITER;