]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-117549: Don't use designated initializers in headers (#118580)
authorGuido van Rossum <guido@python.org>
Sun, 5 May 2024 19:28:55 +0000 (12:28 -0700)
committerGitHub <noreply@github.com>
Sun, 5 May 2024 19:28:55 +0000 (19:28 +0000)
The designated initializer syntax in static inline functions in pycore_backoff.h
causes problems for C++ or MSVC users who aren't yet using C++20.
While internal, pycore_backoff.h is included (indirectly, via pycore_code.h)
by some key 3rd party software that does so for speed.

Include/internal/pycore_backoff.h
Misc/NEWS.d/next/Core and Builtins/2024-05-05-12-04-02.gh-issue-117549.kITawD.rst [new file with mode: 0644]

index decf92bc419c04428c6f1f6ae290352d2befde6e..90735b202c7a93d223888ffe0aa9cbe396189261 100644 (file)
@@ -44,13 +44,18 @@ make_backoff_counter(uint16_t value, uint16_t backoff)
 {
     assert(backoff <= 15);
     assert(value <= 0xFFF);
-    return (_Py_BackoffCounter){.backoff = backoff, .value = value};
+    _Py_BackoffCounter result;
+    result.value = value;
+    result.backoff = backoff;
+    return result;
 }
 
 static inline _Py_BackoffCounter
 forge_backoff_counter(uint16_t counter)
 {
-    return (_Py_BackoffCounter){.as_counter = counter};
+    _Py_BackoffCounter result;
+    result.as_counter = counter;
+    return result;
 }
 
 static inline _Py_BackoffCounter
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-05-05-12-04-02.gh-issue-117549.kITawD.rst b/Misc/NEWS.d/next/Core and Builtins/2024-05-05-12-04-02.gh-issue-117549.kITawD.rst
new file mode 100644 (file)
index 0000000..48ca169
--- /dev/null
@@ -0,0 +1,5 @@
+Don't use designated initializer syntax in inline functions in internal
+headers. They cause problems for C++ or MSVC users who aren't yet using the
+latest C++ standard (C++20). While internal, pycore_backoff.h, is included
+(indirectly, via pycore_code.h) by some key 3rd party software that does so
+for speed.