GCC 15 treats an empty parameter list as (void), but php_add_tick_function() expects void (*)(int, void *).
--- a/ext/pcntl/pcntl.c
+++ b/ext/pcntl/pcntl.c
@@ -253,6 +253,7 @@
 static void pcntl_signal_handler(int);
 #endif
 static void pcntl_signal_dispatch();
+static void pcntl_signal_dispatch_tick_function(int dummy_int, void *dummy_pointer);
 static void pcntl_interrupt_function(zend_execute_data *execute_data);
 
 void php_register_signal_constants(INIT_FUNC_ARGS)
@@ -587,7 +588,7 @@
 
 PHP_RINIT_FUNCTION(pcntl)
 {
-	php_add_tick_function(pcntl_signal_dispatch, NULL);
+	php_add_tick_function(pcntl_signal_dispatch_tick_function, NULL);
 	zend_hash_init(&PCNTL_G(php_signal_table), 16, NULL, ZVAL_PTR_DTOR, 0);
 	PCNTL_G(head) = PCNTL_G(tail) = PCNTL_G(spares) = NULL;
 	PCNTL_G(async_signals) = 0;
@@ -1619,6 +1620,13 @@
 /* }}} */
 #endif
 
+static void pcntl_signal_dispatch_tick_function(int dummy_int, void *dummy_pointer)
+{
+	(void) dummy_int;
+	(void) dummy_pointer;
+	pcntl_signal_dispatch();
+}
+
 static void pcntl_interrupt_function(zend_execute_data *execute_data)
 {
 	pcntl_signal_dispatch();
