The load of `ob_ref_local races with stores. Using a relaxed load is
sufficient; stores to the field are relaxed.
static inline Py_ALWAYS_INLINE int _Py_IsImmortal(PyObject *op)
{
#if defined(Py_GIL_DISABLED)
- return (op->ob_ref_local == _Py_IMMORTAL_REFCNT_LOCAL);
+ return (_Py_atomic_load_uint32_relaxed(&op->ob_ref_local) ==
+ _Py_IMMORTAL_REFCNT_LOCAL);
#elif SIZEOF_VOID_P > 4
return (_Py_CAST(PY_INT32_T, op->ob_refcnt) < 0);
#else
race:_add_to_weak_set
race:_in_weak_set
race:_mi_heap_delayed_free_partial
-race:_Py_IsImmortal
race:_Py_IsOwnedByCurrentThread
race:_PyEval_EvalFrameDefault
race:_PyFunction_SetVersion