Repository navigation
Det: refuse a non-digit in the receiver of ADD / SUBTRACT / MULTIPLY / DIVIDE (Part of #4692) - #4889
Merged
Merged
Conversation
…/ DIVIDE by name (Part of #4692) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
…E, measured, IBM sources, refused (Part of #4692) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX
Owner
Author
|
No description provided. |
squid-protocol
marked this pull request as ready for review
October 11, 2026 12:17
squid-protocol
enabled auto-merge (squash)
October 11, 2026 12:17
Contributor
This was referenced Oct 12, 2026
Merged
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.
Part of #4692 (the P-position sender, #4685, is not done).
Measured. cobc 3.1.2 (
-std=ibm -fsign=EBCDIC, TRUNC STD and BIN, also -O2) does not add in place for a zoned receiver holding spaces, letters, low-values, X'FF',!or a bad sign byte:cob_add_intreads it throughcob_decimal_set_displayas it does an operand (ADD 1 TOfour spaces: 1601;12A4: 1375). Across 5 receiver shapes x ADD / SUBTRACT / ROUNDED / ON SIZE ERROR / field operand / MULTIPLY / MOVE / GIVING / COMPUTE the det runtime's old read already agreed with cobc.IBM. Silent on the digits. ZONEDATA(PFD), the default (and what the estate's evidence records carry), assumes valid zone bits; under NOPFD|MIG an ADD corrects invalid zone bits (APAR PI57769); PI90571 / PH21007 / PH20362 widen NOPFD|MIG to MOVEs, compares and computes but state no digit result. Sources are quoted in register C11.
Change. Policy (IBM reference, oracle the instrument): the port refuses by name, at run time, before it stores, when the receiver of ADD / SUBTRACT / MULTIPLY / DIVIDE holds a non-digit (
Cobol.receiverNum; "arithmetic whose receiver is a zoned item holding a non-digit is not modelled ... register C11"). MOVE / GIVING receivers (overwritten) andCOMPUTE y = y + 1(operand rule) are unchanged and measured. C11 updated + rendered.test_det_nondigit_zoned.pyextended (cobc-checked expected file, refusal per shape).Reach (static, heuristic upper bound). 88 receiver statements in the burned estates; 17 in CardDemo (8 programs) can see a non-digit (commarea page counters cleared by MOVE SPACES; CBEXPORT's counter; COTRN02C
MOVE TRAN-ID TO WS-TRAN-ID-Nafter HIGH-VALUES); CBSA 4 / GenApp 23 / others 0 cannot.Ports.
det_port.py check: all 104 ports changed (the shared runtime'sCobol.java, +14 lines, inert for digit-only data); the 33 whose generated code changed were re-proven: 33/33 PROVED. The other 71 changed only in the runtime copy: left for CI's det sweep.Gates:
pr_gates --fast5/5,--ratchets7 pass 0 skipped.🤖 Generated with Claude Code
https://claude.ai/code/session_01AUWeQX7v4QBdErFbghEEEX