bpo-45434: Cleanup Python.h header file (GH-28883)

* Move limits.h include and UCHAR_MAX checks to pyport.h.
* Move sanitizers macros to pyport.h.
* Remove comment about <assert.h>: C extensions are built with NDEBUG
  automatically by Python.
This commit is contained in:
Victor Stinner 2021-10-11 22:51:32 +02:00 committed by GitHub
parent 2f92e2a590
commit 47717d1186
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 52 deletions

View file

@ -5,6 +5,14 @@
#include <inttypes.h>
#include <limits.h>
#ifndef UCHAR_MAX
# error "limits.h must define UCHAR_MAX"
#endif
#if UCHAR_MAX != 255
# error "Python's source code assumes C's unsigned char is an 8-bit type"
#endif
/* Defines to build Python and its standard library:
*
@ -851,4 +859,22 @@ extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
#endif
/* A convenient way for code to know if sanitizers are enabled. */
#if defined(__has_feature)
# if __has_feature(memory_sanitizer)
# if !defined(_Py_MEMORY_SANITIZER)
# define _Py_MEMORY_SANITIZER
# endif
# endif
# if __has_feature(address_sanitizer)
# if !defined(_Py_ADDRESS_SANITIZER)
# define _Py_ADDRESS_SANITIZER
# endif
# endif
#elif defined(__GNUC__)
# if defined(__SANITIZE_ADDRESS__)
# define _Py_ADDRESS_SANITIZER
# endif
#endif
#endif /* Py_PYPORT_H */