From: Victor Stinner Date: Thu, 21 Sep 2023 23:21:07 +0000 (+0200) Subject: gh-104469: Disallow using Py_LIMITED_API with Py_BUILD_CORE (#109690) X-Git-Tag: v3.13.0a1~359 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3f5c5649cfefe5b03cebe53b3ae766e2739eee23;p=thirdparty%2FPython%2Fcpython.git gh-104469: Disallow using Py_LIMITED_API with Py_BUILD_CORE (#109690) Fix make check-c-globals: complete USE_LIMITED_C_API list of the c-analyzer. --- diff --git a/Include/pyport.h b/Include/pyport.h index 4b6858bf527d..40d580a870fc 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -48,6 +48,10 @@ # define Py_BUILD_CORE #endif +#if defined(Py_LIMITED_API) && defined(Py_BUILD_CORE) +# error "Py_LIMITED_API is not compatible with Py_BUILD_CORE" +#endif + /************************************************************************** Symbols and macros to supply platform-independent interfaces to basic diff --git a/Tools/c-analyzer/c_parser/preprocessor/gcc.py b/Tools/c-analyzer/c_parser/preprocessor/gcc.py index 18d1b1a5d0a3..d206ceb43a26 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/gcc.py +++ b/Tools/c-analyzer/c_parser/preprocessor/gcc.py @@ -3,13 +3,18 @@ import re from . import common as _common -# The following C files must not be built with Py_BUILD_CORE, -# because they use the limited C API. +# The following C files define the Py_LIMITED_API macro, and so must not be +# built with the Py_BUILD_CORE macro defined. USE_LIMITED_C_API = frozenset(( + # Modules/ '_testcapimodule.c', '_testclinic_limited.c', 'xxlimited.c', 'xxlimited_35.c', + + # Modules/_testcapi/ + 'heaptype_relative.c', + 'vectorcall_limited.c', )) TOOL = 'gcc'