]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-123747: Avoid static_assert() in internal header files (#123779)
authorVictor Stinner <vstinner@python.org>
Fri, 6 Sep 2024 13:52:07 +0000 (15:52 +0200)
committerGitHub <noreply@github.com>
Fri, 6 Sep 2024 13:52:07 +0000 (15:52 +0200)
Include/internal/pycore_code.h
Include/internal/pycore_long.h

index 112e880f924727c1eda3f7be7f6c10ce463685ee..57e0a14bb9b5bdf28f6a4c967dd4f056a79f066a 100644 (file)
@@ -543,8 +543,9 @@ write_location_entry_start(uint8_t *ptr, int code, int length)
 #define ADAPTIVE_COOLDOWN_BACKOFF 0
 
 // Can't assert this in pycore_backoff.h because of header order dependencies
-static_assert(SIDE_EXIT_INITIAL_VALUE > ADAPTIVE_COOLDOWN_VALUE,
-    "Cold exit value should be larger than adaptive cooldown value");
+#if SIDE_EXIT_INITIAL_VALUE <= ADAPTIVE_COOLDOWN_VALUE
+#  error  "Cold exit value should be larger than adaptive cooldown value"
+#endif
 
 static inline _Py_BackoffCounter
 adaptive_counter_bits(uint16_t value, uint16_t backoff) {
index 2c7ca6723c1973a5158cf865c4044e0c0bcbfaff..a516a3edd1220368c67c3349b550e1f2585b2130 100644 (file)
@@ -178,8 +178,12 @@ PyAPI_FUNC(int) _PyLong_Size_t_Converter(PyObject *, void *);
  * we define them to the numbers in both places and then assert that
  * they're the same.
  */
-static_assert(SIGN_MASK == _PyLong_SIGN_MASK, "SIGN_MASK does not match _PyLong_SIGN_MASK");
-static_assert(NON_SIZE_BITS == _PyLong_NON_SIZE_BITS, "NON_SIZE_BITS does not match _PyLong_NON_SIZE_BITS");
+#if SIGN_MASK != _PyLong_SIGN_MASK
+#  error "SIGN_MASK does not match _PyLong_SIGN_MASK"
+#endif
+#if NON_SIZE_BITS != _PyLong_NON_SIZE_BITS
+#  error "NON_SIZE_BITS does not match _PyLong_NON_SIZE_BITS"
+#endif
 
 /* All *compact" values are guaranteed to fit into
  * a Py_ssize_t with at least one bit to spare.