Repository navigation
Language: silence value-consuming @ CV fetch (#31881) - #31897
Merged
Merged
Conversation
php-cfg forwarded the original CV after END_SILENCE, so echo/arithmetic/call-arg re-fetched it and warned. Materialize @$cv into an Assign temp under silence so consumers get null without a second fetch (Zend ZEND_BEGIN_SILENCE). Co-authored-by: Cursor <cursoragent@cursor.com>
5 tasks
PurHur
added a commit
that referenced
this pull request
Aug 17, 2026
* Trust: refresh 26 stale helper-runtime prelink units (#31893) Re-emit Nullsafe/DOM/AssertOptions/Ini helper objects from current sources so check-helper-runtime-prelink --strict is 410 fresh / 0 stale. Co-authored-by: Cursor <cursoragent@cursor.com> * Trust: rewrite helper-runtime fingerprints after php-cfg @-silence patch (#31893) Co-authored-by: Cursor <cursoragent@cursor.com> #31897 added patches/php-cfg-error-suppress-cv-temp.patch, which changes the helper-runtime core fingerprint. Helper sources/deps were unchanged, so --refresh-global-fingerprints updates unit+arch keys without restamping .o bytes. --------- Co-authored-by: PurHur <PurHur@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@$cvas a dummyUnaryPlusfetch under silence but still returned the original CV, soecho/ arithmetic / call-arg re-fetched afterEND_SILENCEand emittedUndefined variable.@$cvinto anAssigntemp under silence and forward that temp (null, not+null→ 0).isErrorSuppressInnerExpr()now also treats unary/binary inner exprs so the suppress result slot is inherited.Zend/zend_compile.cZEND_BEGIN_SILENCE/ZEND_END_SILENCE;Zend/zend_execute.cundefined-variableE_WARNINGon CV fetch. PHP implementation:patches/php-cfg-error-suppress-cv-temp.patch+lib/Compiler.php. No newruntime/*.c.Closes #31881
Test plan
./script/phpunit.sh --filter ErrorControlOperatorTestVerification
Zend and VM both: assign
NULL, echoNULL, plus1, callarg0+strlen(null)Deprecated, bare/print silent. NoUndefined variable.JIT: same stdout; stderr has only the
strlen(null)Deprecated (plus an unrelated php-cfg implicit-nullable Deprecated). NoUndefined variable.OK (5 tests, 9 assertions)includingat_silence_value_undef.phpt.Not run:
script/differential-sweep.sh, fullci-local.sh,north-star5-verify --strict.Made with Cursor