Skip to content

[pull] master from php:master#1109

Merged
pull[bot] merged 14 commits into
turkdevops:masterfrom
php:master
Jul 20, 2026
Merged

[pull] master from php:master#1109
pull[bot] merged 14 commits into
turkdevops:masterfrom
php:master

Conversation

@pull

@pull pull Bot commented Jul 20, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

LamentXU123 and others added 14 commits July 20, 2026 22:25
Fixed #22759 by removing the watcher from the Context registry when it is
explicitly removed, and rolling back the backend registration on failure.
Const exprs represent a constant fetch that could not be evaluated at
compile time as ZEND_AST_CONSTANT, which zend_compile_expr_inner() had
no case for, so compiling such a default into a partial's forwarding
call hit ZEND_ASSERT(0). Compile it to ZEND_FETCH_CONSTANT using the
name already resolved by zend_compile_const_expr_const().

zp_compile_forwarding_call() also dropped the reference it took on a
constant-expression default value.

Closes GH-22804
This is the pdo equivalent of GH-22045. Notably it does not include a
change for the blob call because ZVAL_STRINGL_FAST already takes care of
that implicitly.
…re __tls_get_addr call.

Fix GH-22693

The x86_64 General Dynamic TLS sequence called __tls_get_addr without
@plt, which could emit a PC-relative relocation against the external
symbol landing in read-only .text, producing a DT_TEXTREL and a linker
warning about a possible runtime segfault. Routing the call through the
PLT matches the x86-64 TLS ABI canonical sequence and the already
correct i386 variant, without changing the emitted instruction bytes.

Close GH-22801
* PHP-8.5:
  ext/opcache: zend_jit_resolve_tsrm_ls_cache_offsets() TEXTREL from bare __tls_get_addr call.
xmlHasNsProp() falls back to the internal subset, so the legacy ext/dom
attribute methods can receive a DTD attribute declaration instead of an
attribute node. setAttribute() and dom_remove_attribute() enumerated only
XML_ATTRIBUTE_NODE and XML_NAMESPACE_DECL, so a defaulted attribute
asserted on debug builds and ran into __builtin_unreachable() on release
builds, and setAttributeNode() skipped the declaration when unlinking the
old attribute but still returned it, throwing after the tree was already
modified. setAttribute() now creates the attribute as it did before 8.4,
matching setAttributeNS(); removeAttribute() reports that nothing was
removed, since the declaration lives in the DTD and not on the element;
setAttributeNode() returns null; and toggleAttribute() derives its result
from the removal instead of assuming it succeeded, so the returned value
keeps agreeing with hasAttribute(). getAttribute() and hasAttribute()
already handled the declaration, and the Dom\Element methods are
unaffected because the spec-compliant lookup never consults the DTD.

Fixes GH-22825
Closes GH-22830
* PHP-8.4:
  Fix GH-22825: DOM attribute methods on a DTD default attribute
* PHP-8.5:
  Fix GH-22825: DOM attribute methods on a DTD default attribute
There are two OSes in this family: AIX itself, and IBM i PASE, which
provides an AIX syscall emulation environment. uname is different
between them (AIX/OS400).
After __isset() returns true on ?? or empty(), re-check the property table
before calling __get(). When __isset() materialised the property (a pattern used
by lazy proxies), its value is returned directly. isset() itself is unchanged.

Fixes GH-12695
@pull pull Bot locked and limited conversation to collaborators Jul 20, 2026
@pull pull Bot added the ⤵️ pull label Jul 20, 2026
@pull
pull Bot merged commit 36d8547 into turkdevops:master Jul 20, 2026
1 check was pending
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants