bpo-47196: Fix function pointer cast in test_imp (GH-32244)

The function PyInit_imp_dummy is declared as void f(PyObject* spec)
but called as void f(void). On wasm targets without the call
trampolines this causes a fatal error.

Automerge-Triggered-By: GH:tiran
This commit is contained in:
Hood Chatham 2022-04-02 01:00:49 -07:00 committed by GitHub
parent 0f68c208fa
commit 7000cd7016
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -450,7 +450,7 @@ static PyModuleDef_Slot main_slots[] = {
static PyModuleDef main_def = TEST_MODULE_DEF("main", main_slots, testexport_methods); static PyModuleDef main_def = TEST_MODULE_DEF("main", main_slots, testexport_methods);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase(PyObject *spec) PyInit__testmultiphase(void)
{ {
return PyModuleDef_Init(&main_def); return PyModuleDef_Init(&main_def);
} }
@ -495,7 +495,7 @@ static PyModuleDef def_nonmodule = TEST_MODULE_DEF(
"_testmultiphase_nonmodule", slots_create_nonmodule, NULL); "_testmultiphase_nonmodule", slots_create_nonmodule, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_nonmodule(PyObject *spec) PyInit__testmultiphase_nonmodule(void)
{ {
return PyModuleDef_Init(&def_nonmodule); return PyModuleDef_Init(&def_nonmodule);
} }
@ -525,7 +525,7 @@ static PyModuleDef def_nonmodule_with_methods = TEST_MODULE_DEF(
"_testmultiphase_nonmodule_with_methods", slots_create_nonmodule, nonmodule_methods); "_testmultiphase_nonmodule_with_methods", slots_create_nonmodule, nonmodule_methods);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_nonmodule_with_methods(PyObject *spec) PyInit__testmultiphase_nonmodule_with_methods(void)
{ {
return PyModuleDef_Init(&def_nonmodule_with_methods); return PyModuleDef_Init(&def_nonmodule_with_methods);
} }
@ -545,7 +545,7 @@ static PyModuleDef def_nonascii_latin = { \
}; };
PyMODINIT_FUNC PyMODINIT_FUNC
PyInitU__testmultiphase_zkouka_naten_evc07gi8e(PyObject *spec) PyInitU__testmultiphase_zkouka_naten_evc07gi8e(void)
{ {
return PyModuleDef_Init(&def_nonascii_latin); return PyModuleDef_Init(&def_nonascii_latin);
} }
@ -563,7 +563,7 @@ static PyModuleDef def_nonascii_kana = { \
}; };
PyMODINIT_FUNC PyMODINIT_FUNC
PyInitU_eckzbwbhc6jpgzcx415x(PyObject *spec) PyInitU_eckzbwbhc6jpgzcx415x(void)
{ {
return PyModuleDef_Init(&def_nonascii_kana); return PyModuleDef_Init(&def_nonascii_kana);
} }
@ -571,7 +571,7 @@ PyInitU_eckzbwbhc6jpgzcx415x(PyObject *spec)
/*** Module with a single-character name ***/ /*** Module with a single-character name ***/
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit_x(PyObject *spec) PyInit_x(void)
{ {
return PyModuleDef_Init(&main_def); return PyModuleDef_Init(&main_def);
} }
@ -582,7 +582,7 @@ static PyModuleDef null_slots_def = TEST_MODULE_DEF(
"_testmultiphase_null_slots", NULL, NULL); "_testmultiphase_null_slots", NULL, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_null_slots(PyObject *spec) PyInit__testmultiphase_null_slots(void)
{ {
return PyModuleDef_Init(&null_slots_def); return PyModuleDef_Init(&null_slots_def);
} }
@ -598,7 +598,7 @@ static PyModuleDef def_bad_large = TEST_MODULE_DEF(
"_testmultiphase_bad_slot_large", slots_bad_large, NULL); "_testmultiphase_bad_slot_large", slots_bad_large, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_bad_slot_large(PyObject *spec) PyInit__testmultiphase_bad_slot_large(void)
{ {
return PyModuleDef_Init(&def_bad_large); return PyModuleDef_Init(&def_bad_large);
} }
@ -612,7 +612,7 @@ static PyModuleDef def_bad_negative = TEST_MODULE_DEF(
"_testmultiphase_bad_slot_negative", slots_bad_negative, NULL); "_testmultiphase_bad_slot_negative", slots_bad_negative, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_bad_slot_negative(PyObject *spec) PyInit__testmultiphase_bad_slot_negative(void)
{ {
return PyModuleDef_Init(&def_bad_negative); return PyModuleDef_Init(&def_bad_negative);
} }
@ -630,7 +630,7 @@ static PyModuleDef def_create_int_with_state = { \
}; };
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_create_int_with_state(PyObject *spec) PyInit__testmultiphase_create_int_with_state(void)
{ {
return PyModuleDef_Init(&def_create_int_with_state); return PyModuleDef_Init(&def_create_int_with_state);
} }
@ -649,7 +649,7 @@ static PyModuleDef def_negative_size = { \
}; };
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_negative_size(PyObject *spec) PyInit__testmultiphase_negative_size(void)
{ {
return PyModuleDef_Init(&def_negative_size); return PyModuleDef_Init(&def_negative_size);
} }
@ -658,26 +658,26 @@ PyInit__testmultiphase_negative_size(PyObject *spec)
static PyModuleDef uninitialized_def = TEST_MODULE_DEF("main", main_slots, testexport_methods); static PyModuleDef uninitialized_def = TEST_MODULE_DEF("main", main_slots, testexport_methods);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_export_uninitialized(PyObject *spec) PyInit__testmultiphase_export_uninitialized(void)
{ {
return (PyObject*) &uninitialized_def; return (PyObject*) &uninitialized_def;
} }
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_export_null(PyObject *spec) PyInit__testmultiphase_export_null(void)
{ {
return NULL; return NULL;
} }
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_export_raise(PyObject *spec) PyInit__testmultiphase_export_raise(void)
{ {
PyErr_SetString(PyExc_SystemError, "bad export function"); PyErr_SetString(PyExc_SystemError, "bad export function");
return NULL; return NULL;
} }
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_export_unreported_exception(PyObject *spec) PyInit__testmultiphase_export_unreported_exception(void)
{ {
PyErr_SetString(PyExc_SystemError, "bad export function"); PyErr_SetString(PyExc_SystemError, "bad export function");
return PyModuleDef_Init(&main_def); return PyModuleDef_Init(&main_def);
@ -698,7 +698,7 @@ static PyModuleDef def_create_null = TEST_MODULE_DEF(
"_testmultiphase_create_null", slots_create_null, NULL); "_testmultiphase_create_null", slots_create_null, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_create_null(PyObject *spec) PyInit__testmultiphase_create_null(void)
{ {
return PyModuleDef_Init(&def_create_null); return PyModuleDef_Init(&def_create_null);
} }
@ -719,7 +719,7 @@ static PyModuleDef def_create_raise = TEST_MODULE_DEF(
"_testmultiphase_create_null", slots_create_raise, NULL); "_testmultiphase_create_null", slots_create_raise, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_create_raise(PyObject *spec) PyInit__testmultiphase_create_raise(void)
{ {
return PyModuleDef_Init(&def_create_raise); return PyModuleDef_Init(&def_create_raise);
} }
@ -740,7 +740,7 @@ static PyModuleDef def_create_unreported_exception = TEST_MODULE_DEF(
"_testmultiphase_create_unreported_exception", slots_create_unreported_exception, NULL); "_testmultiphase_create_unreported_exception", slots_create_unreported_exception, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_create_unreported_exception(PyObject *spec) PyInit__testmultiphase_create_unreported_exception(void)
{ {
return PyModuleDef_Init(&def_create_unreported_exception); return PyModuleDef_Init(&def_create_unreported_exception);
} }
@ -755,7 +755,7 @@ static PyModuleDef def_nonmodule_with_exec_slots = TEST_MODULE_DEF(
"_testmultiphase_nonmodule_with_exec_slots", slots_nonmodule_with_exec_slots, NULL); "_testmultiphase_nonmodule_with_exec_slots", slots_nonmodule_with_exec_slots, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_nonmodule_with_exec_slots(PyObject *spec) PyInit__testmultiphase_nonmodule_with_exec_slots(void)
{ {
return PyModuleDef_Init(&def_nonmodule_with_exec_slots); return PyModuleDef_Init(&def_nonmodule_with_exec_slots);
} }
@ -775,7 +775,7 @@ static PyModuleDef def_exec_err = TEST_MODULE_DEF(
"_testmultiphase_exec_err", slots_exec_err, NULL); "_testmultiphase_exec_err", slots_exec_err, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_exec_err(PyObject *spec) PyInit__testmultiphase_exec_err(void)
{ {
return PyModuleDef_Init(&def_exec_err); return PyModuleDef_Init(&def_exec_err);
} }
@ -817,7 +817,7 @@ static PyModuleDef def_exec_unreported_exception = TEST_MODULE_DEF(
"_testmultiphase_exec_unreported_exception", slots_exec_unreported_exception, NULL); "_testmultiphase_exec_unreported_exception", slots_exec_unreported_exception, NULL);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_exec_unreported_exception(PyObject *spec) PyInit__testmultiphase_exec_unreported_exception(void)
{ {
return PyModuleDef_Init(&def_exec_unreported_exception); return PyModuleDef_Init(&def_exec_unreported_exception);
} }
@ -861,7 +861,7 @@ static PyModuleDef def_meth_state_access = {
}; };
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__testmultiphase_meth_state_access(PyObject *spec) PyInit__testmultiphase_meth_state_access(void)
{ {
return PyModuleDef_Init(&def_meth_state_access); return PyModuleDef_Init(&def_meth_state_access);
} }
@ -874,7 +874,7 @@ static PyModuleDef def_module_state_shared = {
}; };
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit__test_module_state_shared(PyObject *spec) PyInit__test_module_state_shared(void)
{ {
PyObject *module = PyModule_Create(&def_module_state_shared); PyObject *module = PyModule_Create(&def_module_state_shared);
if (module == NULL) { if (module == NULL) {
@ -894,7 +894,7 @@ PyInit__test_module_state_shared(PyObject *spec)
static PyModuleDef imp_dummy_def = TEST_MODULE_DEF("imp_dummy", main_slots, testexport_methods); static PyModuleDef imp_dummy_def = TEST_MODULE_DEF("imp_dummy", main_slots, testexport_methods);
PyMODINIT_FUNC PyMODINIT_FUNC
PyInit_imp_dummy(PyObject *spec) PyInit_imp_dummy(void)
{ {
return PyModuleDef_Init(&imp_dummy_def); return PyModuleDef_Init(&imp_dummy_def);
} }