Commit 4bb88e0367f for php

commit 4bb88e0367fe6d074e15d0bec13217d51b815dca
Author: Marc Bennewitz <marc-mabe@users.noreply.github.com>
Date:   Mon Oct 19 11:43:04 2026 +0200

    Fix -Wint-to-pointer-cast warnings in the CALL VM on 32-bit (#24360)

    ZEND_VM_ENTER_BIT tags the opline returned by CALL VM handlers. It is
    1ULL so that ~ZEND_VM_ENTER_BIT keeps the upper half of 64-bit pointers,
    but on 32-bit platforms it widens the tagged pointer expressions to
    64 bits, and casting those back to a pointer warns. This breaks
    --enable-werror builds where no global VM registers are used, e.g. arm32,
    or i386 with --disable-gcc-global-regs.

    Use (uintptr_t)1 instead, which is exactly pointer-sized everywhere, also
    in the copies of the definition in the JIT and the fuzzer SAPI.

diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 2b5d042666c..2bc51f2841a 100644
Binary files a/Zend/zend_vm_execute.h and b/Zend/zend_vm_execute.h differ
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index e08d9ebd32b..0b9c47a330e 100755
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -2040,7 +2040,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name)
                             out($f,"# define ZEND_VM_ENTER()           opline = EG(current_execute_data)->opline; ZEND_VM_ENTER_EX()\n");
                             out($f,"# define ZEND_VM_LEAVE()           return  2\n");
                             out($f,"#else\n");
-                            out($f,"# define ZEND_VM_ENTER_BIT         1ULL\n");
+                            out($f,"# define ZEND_VM_ENTER_BIT         ((uintptr_t)1)\n");
                             out($f,"# define ZEND_VM_ENTER_EX()        return (zend_op*)((uintptr_t)opline | ZEND_VM_ENTER_BIT)\n");
                             out($f,"# define ZEND_VM_ENTER()           execute_data = EG(current_execute_data); LOAD_OPLINE(); ZEND_VM_ENTER_EX()\n");
                             out($f,"# define ZEND_VM_LEAVE()           return (zend_op*)((uintptr_t)opline | ZEND_VM_ENTER_BIT)\n");
diff --git a/ext/opcache/jit/zend_jit_internal.h b/ext/opcache/jit/zend_jit_internal.h
index 8732b424f00..bcc267a4000 100644
--- a/ext/opcache/jit/zend_jit_internal.h
+++ b/ext/opcache/jit/zend_jit_internal.h
@@ -224,7 +224,7 @@ extern const zend_op *zend_jit_interrupt_op;
 # define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU    EXECUTE_DATA_C OPLINE_CC
 # define ZEND_OPCODE_HANDLER_ARGS_EX          EXECUTE_DATA_D OPLINE_DC,
 # define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_EX EXECUTE_DATA_C OPLINE_CC,
-# define ZEND_VM_ENTER_BIT 1ULL
+# define ZEND_VM_ENTER_BIT ((uintptr_t)1)
 #endif

 /* VM helpers */
diff --git a/sapi/fuzzer/fuzzer-execute-common.h b/sapi/fuzzer/fuzzer-execute-common.h
index 338c771e551..9758fe7a628 100644
--- a/sapi/fuzzer/fuzzer-execute-common.h
+++ b/sapi/fuzzer/fuzzer-execute-common.h
@@ -28,7 +28,7 @@
 #define FILE_NAME "/tmp/fuzzer.php"
 #define MAX_STEPS 1000
 #define MAX_SIZE (8 * 1024)
-#define ZEND_VM_ENTER_BIT 1ULL
+#define ZEND_VM_ENTER_BIT ((uintptr_t)1)

 static uint32_t steps_left;
 static bool bailed_out = false;