bpo-41617: Fix pycore_bitutils.h to support clang 3.0 (GH-22042)

__builtin_bswap16() is not available in LLVM clang 3.0.
This commit is contained in:
Victor Stinner 2020-09-01 18:25:14 +02:00 committed by GitHub
parent 0d6aa7f0ee
commit e6905e4c82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 4 deletions

View File

@ -17,10 +17,12 @@ extern "C" {
# error "this header requires Py_BUILD_CORE define"
#endif
#if defined(__clang__) || \
(defined(__GNUC__) && \
((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)))
/* __builtin_bswap16() is available since GCC 4.8,
#if ((defined(__GNUC__) \
&& ((__GNUC__ >= 5) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8))) \
|| (defined(__clang__) \
&& (__clang_major__ >= 4 \
|| (__clang_major__ == 3 && __clang_minor__ >= 2))))
/* __builtin_bswap16() is available since GCC 4.8 and clang 3.2,
__builtin_bswap32() is available since GCC 4.3,
__builtin_bswap64() is available since GCC 4.3. */
# define _PY_HAVE_BUILTIN_BSWAP

View File

@ -0,0 +1,2 @@
Fix ``pycore_bitutils.h`` header file to support old clang versions:
``__builtin_bswap16()`` is not available in LLVM clang 3.0.