Skip to content

Commit 5bb987b

Browse files
committed
Merge branch 'PHP-8.4'
* PHP-8.4: Fix GH-16168: php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15
2 parents 543c168 + 5b0b151 commit 5bb987b

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

Zend/zend_string.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -402,32 +402,32 @@ ZEND_API bool ZEND_FASTCALL I_REPLACE_SONAME_FNNAME_ZU(NONE,zend_string_equal_va
402402
ZEND_API zend_never_inline NOIPA bool ZEND_FASTCALL zend_string_equal_val(const zend_string *s1, const zend_string *s2)
403403
{
404404
const char *ptr = ZSTR_VAL(s1);
405-
size_t delta = (const char*)s2 - (const char*)s1;
405+
uintptr_t delta = (uintptr_t) s2 - (uintptr_t) s1;
406406
size_t len = ZSTR_LEN(s1);
407407
zend_ulong ret;
408408

409409
__asm__ (
410-
".LL0%=:\n\t"
410+
"0:\n\t"
411411
"movl (%2,%3), %0\n\t"
412412
"xorl (%2), %0\n\t"
413-
"jne .LL1%=\n\t"
413+
"jne 1f\n\t"
414414
"addl $0x4, %2\n\t"
415415
"subl $0x4, %1\n\t"
416-
"ja .LL0%=\n\t"
416+
"ja 0b\n\t"
417417
"movl $0x1, %0\n\t"
418-
"jmp .LL3%=\n\t"
419-
".LL1%=:\n\t"
418+
"jmp 3f\n\t"
419+
"1:\n\t"
420420
"cmpl $0x4,%1\n\t"
421-
"jb .LL2%=\n\t"
421+
"jb 2f\n\t"
422422
"xorl %0, %0\n\t"
423-
"jmp .LL3%=\n\t"
424-
".LL2%=:\n\t"
423+
"jmp 3f\n\t"
424+
"2:\n\t"
425425
"negl %1\n\t"
426426
"lea 0x20(,%1,8), %1\n\t"
427427
"shll %b1, %0\n\t"
428428
"sete %b0\n\t"
429429
"movzbl %b0, %0\n\t"
430-
".LL3%=:\n"
430+
"3:\n"
431431
: "=&a"(ret),
432432
"+c"(len),
433433
"+r"(ptr)
@@ -440,32 +440,32 @@ ZEND_API zend_never_inline NOIPA bool ZEND_FASTCALL zend_string_equal_val(const
440440
ZEND_API zend_never_inline NOIPA bool ZEND_FASTCALL zend_string_equal_val(const zend_string *s1, const zend_string *s2)
441441
{
442442
const char *ptr = ZSTR_VAL(s1);
443-
size_t delta = (const char*)s2 - (const char*)s1;
443+
uintptr_t delta = (uintptr_t) s2 - (uintptr_t) s1;
444444
size_t len = ZSTR_LEN(s1);
445445
zend_ulong ret;
446446

447447
__asm__ (
448-
".LL0%=:\n\t"
448+
"0:\n\t"
449449
"movq (%2,%3), %0\n\t"
450450
"xorq (%2), %0\n\t"
451-
"jne .LL1%=\n\t"
451+
"jne 1f\n\t"
452452
"addq $0x8, %2\n\t"
453453
"subq $0x8, %1\n\t"
454-
"ja .LL0%=\n\t"
454+
"ja 0b\n\t"
455455
"movq $0x1, %0\n\t"
456-
"jmp .LL3%=\n\t"
457-
".LL1%=:\n\t"
456+
"jmp 3f\n\t"
457+
"1:\n\t"
458458
"cmpq $0x8,%1\n\t"
459-
"jb .LL2%=\n\t"
459+
"jb 2f\n\t"
460460
"xorq %0, %0\n\t"
461-
"jmp .LL3%=\n\t"
462-
".LL2%=:\n\t"
461+
"jmp 3f\n\t"
462+
"2:\n\t"
463463
"negq %1\n\t"
464464
"lea 0x40(,%1,8), %1\n\t"
465465
"shlq %b1, %0\n\t"
466466
"sete %b0\n\t"
467467
"movzbq %b0, %0\n\t"
468-
".LL3%=:\n"
468+
"3:\n"
469469
: "=&a"(ret),
470470
"+c"(len),
471471
"+r"(ptr)

0 commit comments

Comments
 (0)