Skip to content

Commit 7000cd7

Browse files
authored
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
1 parent 0f68c20 commit 7000cd7

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

Modules/_testmultiphase.c

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ static PyModuleDef_Slot main_slots[] = {
450450
static PyModuleDef main_def = TEST_MODULE_DEF("main", main_slots, testexport_methods);
451451

452452
PyMODINIT_FUNC
453-
PyInit__testmultiphase(PyObject *spec)
453+
PyInit__testmultiphase(void)
454454
{
455455
return PyModuleDef_Init(&main_def);
456456
}
@@ -495,7 +495,7 @@ static PyModuleDef def_nonmodule = TEST_MODULE_DEF(
495495
"_testmultiphase_nonmodule", slots_create_nonmodule, NULL);
496496

497497
PyMODINIT_FUNC
498-
PyInit__testmultiphase_nonmodule(PyObject *spec)
498+
PyInit__testmultiphase_nonmodule(void)
499499
{
500500
return PyModuleDef_Init(&def_nonmodule);
501501
}
@@ -525,7 +525,7 @@ static PyModuleDef def_nonmodule_with_methods = TEST_MODULE_DEF(
525525
"_testmultiphase_nonmodule_with_methods", slots_create_nonmodule, nonmodule_methods);
526526

527527
PyMODINIT_FUNC
528-
PyInit__testmultiphase_nonmodule_with_methods(PyObject *spec)
528+
PyInit__testmultiphase_nonmodule_with_methods(void)
529529
{
530530
return PyModuleDef_Init(&def_nonmodule_with_methods);
531531
}
@@ -545,7 +545,7 @@ static PyModuleDef def_nonascii_latin = { \
545545
};
546546

547547
PyMODINIT_FUNC
548-
PyInitU__testmultiphase_zkouka_naten_evc07gi8e(PyObject *spec)
548+
PyInitU__testmultiphase_zkouka_naten_evc07gi8e(void)
549549
{
550550
return PyModuleDef_Init(&def_nonascii_latin);
551551
}
@@ -563,15 +563,15 @@ static PyModuleDef def_nonascii_kana = { \
563563
};
564564

565565
PyMODINIT_FUNC
566-
PyInitU_eckzbwbhc6jpgzcx415x(PyObject *spec)
566+
PyInitU_eckzbwbhc6jpgzcx415x(void)
567567
{
568568
return PyModuleDef_Init(&def_nonascii_kana);
569569
}
570570

571571
/*** Module with a single-character name ***/
572572

573573
PyMODINIT_FUNC
574-
PyInit_x(PyObject *spec)
574+
PyInit_x(void)
575575
{
576576
return PyModuleDef_Init(&main_def);
577577
}
@@ -582,7 +582,7 @@ static PyModuleDef null_slots_def = TEST_MODULE_DEF(
582582
"_testmultiphase_null_slots", NULL, NULL);
583583

584584
PyMODINIT_FUNC
585-
PyInit__testmultiphase_null_slots(PyObject *spec)
585+
PyInit__testmultiphase_null_slots(void)
586586
{
587587
return PyModuleDef_Init(&null_slots_def);
588588
}
@@ -598,7 +598,7 @@ static PyModuleDef def_bad_large = TEST_MODULE_DEF(
598598
"_testmultiphase_bad_slot_large", slots_bad_large, NULL);
599599

600600
PyMODINIT_FUNC
601-
PyInit__testmultiphase_bad_slot_large(PyObject *spec)
601+
PyInit__testmultiphase_bad_slot_large(void)
602602
{
603603
return PyModuleDef_Init(&def_bad_large);
604604
}
@@ -612,7 +612,7 @@ static PyModuleDef def_bad_negative = TEST_MODULE_DEF(
612612
"_testmultiphase_bad_slot_negative", slots_bad_negative, NULL);
613613

614614
PyMODINIT_FUNC
615-
PyInit__testmultiphase_bad_slot_negative(PyObject *spec)
615+
PyInit__testmultiphase_bad_slot_negative(void)
616616
{
617617
return PyModuleDef_Init(&def_bad_negative);
618618
}
@@ -630,7 +630,7 @@ static PyModuleDef def_create_int_with_state = { \
630630
};
631631

632632
PyMODINIT_FUNC
633-
PyInit__testmultiphase_create_int_with_state(PyObject *spec)
633+
PyInit__testmultiphase_create_int_with_state(void)
634634
{
635635
return PyModuleDef_Init(&def_create_int_with_state);
636636
}
@@ -649,7 +649,7 @@ static PyModuleDef def_negative_size = { \
649649
};
650650

651651
PyMODINIT_FUNC
652-
PyInit__testmultiphase_negative_size(PyObject *spec)
652+
PyInit__testmultiphase_negative_size(void)
653653
{
654654
return PyModuleDef_Init(&def_negative_size);
655655
}
@@ -658,26 +658,26 @@ PyInit__testmultiphase_negative_size(PyObject *spec)
658658
static PyModuleDef uninitialized_def = TEST_MODULE_DEF("main", main_slots, testexport_methods);
659659

660660
PyMODINIT_FUNC
661-
PyInit__testmultiphase_export_uninitialized(PyObject *spec)
661+
PyInit__testmultiphase_export_uninitialized(void)
662662
{
663663
return (PyObject*) &uninitialized_def;
664664
}
665665

666666
PyMODINIT_FUNC
667-
PyInit__testmultiphase_export_null(PyObject *spec)
667+
PyInit__testmultiphase_export_null(void)
668668
{
669669
return NULL;
670670
}
671671

672672
PyMODINIT_FUNC
673-
PyInit__testmultiphase_export_raise(PyObject *spec)
673+
PyInit__testmultiphase_export_raise(void)
674674
{
675675
PyErr_SetString(PyExc_SystemError, "bad export function");
676676
return NULL;
677677
}
678678

679679
PyMODINIT_FUNC
680-
PyInit__testmultiphase_export_unreported_exception(PyObject *spec)
680+
PyInit__testmultiphase_export_unreported_exception(void)
681681
{
682682
PyErr_SetString(PyExc_SystemError, "bad export function");
683683
return PyModuleDef_Init(&main_def);
@@ -698,7 +698,7 @@ static PyModuleDef def_create_null = TEST_MODULE_DEF(
698698
"_testmultiphase_create_null", slots_create_null, NULL);
699699

700700
PyMODINIT_FUNC
701-
PyInit__testmultiphase_create_null(PyObject *spec)
701+
PyInit__testmultiphase_create_null(void)
702702
{
703703
return PyModuleDef_Init(&def_create_null);
704704
}
@@ -719,7 +719,7 @@ static PyModuleDef def_create_raise = TEST_MODULE_DEF(
719719
"_testmultiphase_create_null", slots_create_raise, NULL);
720720

721721
PyMODINIT_FUNC
722-
PyInit__testmultiphase_create_raise(PyObject *spec)
722+
PyInit__testmultiphase_create_raise(void)
723723
{
724724
return PyModuleDef_Init(&def_create_raise);
725725
}
@@ -740,7 +740,7 @@ static PyModuleDef def_create_unreported_exception = TEST_MODULE_DEF(
740740
"_testmultiphase_create_unreported_exception", slots_create_unreported_exception, NULL);
741741

742742
PyMODINIT_FUNC
743-
PyInit__testmultiphase_create_unreported_exception(PyObject *spec)
743+
PyInit__testmultiphase_create_unreported_exception(void)
744744
{
745745
return PyModuleDef_Init(&def_create_unreported_exception);
746746
}
@@ -755,7 +755,7 @@ static PyModuleDef def_nonmodule_with_exec_slots = TEST_MODULE_DEF(
755755
"_testmultiphase_nonmodule_with_exec_slots", slots_nonmodule_with_exec_slots, NULL);
756756

757757
PyMODINIT_FUNC
758-
PyInit__testmultiphase_nonmodule_with_exec_slots(PyObject *spec)
758+
PyInit__testmultiphase_nonmodule_with_exec_slots(void)
759759
{
760760
return PyModuleDef_Init(&def_nonmodule_with_exec_slots);
761761
}
@@ -775,7 +775,7 @@ static PyModuleDef def_exec_err = TEST_MODULE_DEF(
775775
"_testmultiphase_exec_err", slots_exec_err, NULL);
776776

777777
PyMODINIT_FUNC
778-
PyInit__testmultiphase_exec_err(PyObject *spec)
778+
PyInit__testmultiphase_exec_err(void)
779779
{
780780
return PyModuleDef_Init(&def_exec_err);
781781
}
@@ -817,7 +817,7 @@ static PyModuleDef def_exec_unreported_exception = TEST_MODULE_DEF(
817817
"_testmultiphase_exec_unreported_exception", slots_exec_unreported_exception, NULL);
818818

819819
PyMODINIT_FUNC
820-
PyInit__testmultiphase_exec_unreported_exception(PyObject *spec)
820+
PyInit__testmultiphase_exec_unreported_exception(void)
821821
{
822822
return PyModuleDef_Init(&def_exec_unreported_exception);
823823
}
@@ -861,7 +861,7 @@ static PyModuleDef def_meth_state_access = {
861861
};
862862

863863
PyMODINIT_FUNC
864-
PyInit__testmultiphase_meth_state_access(PyObject *spec)
864+
PyInit__testmultiphase_meth_state_access(void)
865865
{
866866
return PyModuleDef_Init(&def_meth_state_access);
867867
}
@@ -874,7 +874,7 @@ static PyModuleDef def_module_state_shared = {
874874
};
875875

876876
PyMODINIT_FUNC
877-
PyInit__test_module_state_shared(PyObject *spec)
877+
PyInit__test_module_state_shared(void)
878878
{
879879
PyObject *module = PyModule_Create(&def_module_state_shared);
880880
if (module == NULL) {
@@ -894,7 +894,7 @@ PyInit__test_module_state_shared(PyObject *spec)
894894
static PyModuleDef imp_dummy_def = TEST_MODULE_DEF("imp_dummy", main_slots, testexport_methods);
895895

896896
PyMODINIT_FUNC
897-
PyInit_imp_dummy(PyObject *spec)
897+
PyInit_imp_dummy(void)
898898
{
899899
return PyModuleDef_Init(&imp_dummy_def);
900900
}

0 commit comments

Comments
 (0)