Bug report
Bug description:
When configured via:
./configure --disable-gil --with-assertions
Build fails:
gcc -c -fno-strict-overflow -Wsign-compare -g -O3 -Wall -std=c11 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -I./Include/internal/mimalloc -I. -I./Include -DPy_BUILD_CORE -o Objects/typeobject.o Objects/typeobject.c
In file included from ./Include/internal/pycore_backoff.h:12,
from ./Include/internal/pycore_code.h:11,
from ./Include/internal/pycore_call.h:11,
from Objects/typeobject.c:5:
Objects/typeobject.c: In function ‘types_stop_world’:
Objects/typeobject.c:123:13: error: implicit declaration of function ‘types_world_is_stopped’ [-Wimplicit-function-declaration]
123 | assert(!types_world_is_stopped());
| ^~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:3309: Objects/typeobject.o] Error 1
Reproduced with 3.15.0a1 and f262297.
The function is incorrectly guarded via Py_DEBUG
when it's used via assert()
which uses !NDEBUG
instead.
Introduced in #133177, CC @nascheme.
CPython versions tested on:
3.15, CPython main branch
Operating systems tested on:
Linux
Linked PRs