https://github.com/python/cpython/commit/f139d840fb543f8357ce9fc8f845c4e945a0ce85
commit: f139d840fb543f8357ce9fc8f845c4e945a0ce85
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2024-03-18T16:14:42Z
summary:
gh-116869: Fix redefinition of the _PyOptimizerObject type (#116963)
Defining a type twice is a C11 feature and so makes the C API
incompatible with C99. Fix the issue by only defining the type once.
Example of warning (treated as an error):
In file included from Include/Python.h:122:
Include/cpython/optimizer.h:77:3: error: redefinition of typedef
'_PyOptimizerObject' is a C11 feature [-Werror,-Wtypedef-redefinition]
} _PyOptimizerObject;
^
build/Include/cpython/optimizer.h:60:35: note: previous definition is here
typedef struct _PyOptimizerObject _PyOptimizerObject;
^
files:
M Include/cpython/optimizer.h
diff --git a/Include/cpython/optimizer.h b/Include/cpython/optimizer.h
index 6d7b8bc3c1433a..df83e6d16a429d 100644
--- a/Include/cpython/optimizer.h
+++ b/Include/cpython/optimizer.h
@@ -65,7 +65,7 @@ typedef int (*optimize_func)(
_Py_CODEUNIT *instr, _PyExecutorObject **exec_ptr,
int curr_stackentries);
-typedef struct _PyOptimizerObject {
+struct _PyOptimizerObject {
PyObject_HEAD
optimize_func optimize;
/* These thresholds are treated as signed so do not exceed INT16_MAX
@@ -74,7 +74,7 @@ typedef struct _PyOptimizerObject {
uint16_t side_threshold;
uint16_t backedge_threshold;
/* Data needed by the optimizer goes here, but is opaque to the VM */
-} _PyOptimizerObject;
+};
/** Test support **/
typedef struct {
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]