CardDemo — System Data & Control Flow — Static Findings

derived from parsed facts · basis 231692d4 · 2026-08-02
5 Uninvoked paragraph1 Unreachable after transfer1 Unreachable loop close-out5 Silent I/O failure2 Status-variable mismatch3 Accumulator double-write12 COMPUTE without ROUNDED0 Negative SQLCODE loop hazard0 Intervening SQLCODE overwrite

CBACT04C 2 findings

Unreachable loop close-out 1050-UPDATE-ACCOUNT · L271

Control-flow hazard: the ELSE-arm call at L302 is entry-unreachable; the EOF-time final flush never executes; 1050-UPDATE-ACCOUNT itself runs at each account boundary (L279); consequence: the LAST account is never written.

Recorded evidence and all detector fields

Source cites

  • 1050-UPDATE-ACCOUNT @L271 [primary]
  • 1050-UPDATE-ACCOUNT @L302 [sites]
  • 1050-UPDATE-ACCOUNT @L279 [other_call_sites:LIVE:then_action:then_span]

Resident row

line
271
note
Control-flow hazard: the ELSE-arm call at L302 is entry-unreachable; the EOF-time final flush never executes; 1050-UPDATE-ACCOUNT itself runs at each account boundary (L279); consequence: the LAST account is never written.
other_call_sites
  1. basis
    then_action:then_span
    line
    279
    liveness
    LIVE
    paragraph
    1050-UPDATE-ACCOUNT
paragraph
1050-UPDATE-ACCOUNT
program
CBACT04C
sites
  1. line
    302
    paragraph
    1050-UPDATE-ACCOUNT
status
DETECTED
COMPUTE without ROUNDED 1300-COMPUTE-INTEREST · L547

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1300-COMPUTE-INTEREST @L547 [primary]

Resident row

expression
( TRAN-CAT-BAL * DIS-INT-RATE) / 1200
line
547
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1300-COMPUTE-INTEREST
program
CBACT04C
target
WS-MONTHLY-INT
target_pic
S9(09)V99.

CBTRN01C 3 findings

Silent I/O failure 2000-LOOKUP-XREF · L348

INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent

Recorded evidence and all detector fields

Source cites

  • 2000-LOOKUP-XREF @L348 [primary]

Resident row

file
XREF-FILE
handler_excerpt
READ XREF-FILE RECORD INTO CARD-XREF-RECORD | KEY IS FD-XREF-CARD-NUM | INVALID KEY | DISPLAY 'INVALID CARD NUMBER FOR XREF' | MOVE 4 TO WS-XREF-READ-STATUS | NOT INVALID KEY | DISPLAY 'SUCCESSFUL RE
line
348
note
INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent
operation
READ
paragraph
2000-LOOKUP-XREF
program
CBTRN01C
tolerated_statuses
[]
Silent I/O failure 3000-READ-ACCOUNT · L362

INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent

Recorded evidence and all detector fields

Source cites

  • 3000-READ-ACCOUNT @L362 [primary]

Resident row

file
ACCOUNT-FILE
handler_excerpt
READ ACCOUNT-FILE RECORD INTO ACCOUNT-RECORD | KEY IS FD-ACCT-ID | INVALID KEY | DISPLAY 'INVALID ACCOUNT NUMBER FOUND' | MOVE 4 TO WS-ACCT-READ-STATUS | NOT INVALID KEY | DISPLAY 'SUCCESSFUL READ OF
line
362
note
INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent
operation
READ
paragraph
3000-READ-ACCOUNT
program
CBTRN01C
tolerated_statuses
[]
Status-variable mismatch 9000-DALYTRAN-CLOSE · L492

Paragraph 9000-DALYTRAN-CLOSE operates on a different file than CUSTFILE-STATUS belongs to — error path MOVEs the wrong file's status to IO-STATUS

Recorded evidence and all detector fields

Source cites

  • 9000-DALYTRAN-CLOSE @L492 [primary]

Resident row

line
492
moved_status_var
CUSTFILE-STATUS
note
Paragraph 9000-DALYTRAN-CLOSE operates on a different file than CUSTFILE-STATUS belongs to — error path MOVEs the wrong file's status to IO-STATUS
paragraph
9000-DALYTRAN-CLOSE
paragraph_file_key
DALYTRAN
program
CBTRN01C

CBTRN02C 6 findings

Silent I/O failure 1500-A-LOOKUP-XREF · L474

INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent

Recorded evidence and all detector fields

Source cites

  • 1500-A-LOOKUP-XREF @L474 [primary]

Resident row

file
XREF-FILE
handler_excerpt
READ XREF-FILE INTO CARD-XREF-RECORD | INVALID KEY | MOVE 100 TO WS-VALIDATION-FAIL-REASON | MOVE 'INVALID CARD NUMBER FOUND' | TO WS-VALIDATION-FAIL-REASON-DESC | NOT INVALID KEY | CONTINUE | END-REA
line
474
note
INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent
operation
READ
paragraph
1500-A-LOOKUP-XREF
program
CBTRN02C
tolerated_statuses
[]
Silent I/O failure 1500-B-LOOKUP-ACCT · L486

INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent

Recorded evidence and all detector fields

Source cites

  • 1500-B-LOOKUP-ACCT @L486 [primary]

Resident row

file
ACCOUNT-FILE
handler_excerpt
READ ACCOUNT-FILE INTO ACCOUNT-RECORD | INVALID KEY | MOVE 101 TO WS-VALIDATION-FAIL-REASON | MOVE 'ACCOUNT RECORD NOT FOUND' | TO WS-VALIDATION-FAIL-REASON-DESC | NOT INVALID KEY | COMPUTE WS-TEMP-BA
line
486
note
INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent
operation
READ
paragraph
1500-B-LOOKUP-ACCT
program
CBTRN02C
tolerated_statuses
[]
Silent I/O failure 2800-UPDATE-ACCOUNT-REC · L645

INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent

Recorded evidence and all detector fields

Source cites

  • 2800-UPDATE-ACCOUNT-REC @L645 [primary]

Resident row

file
FD-ACCTFILE-REC
handler_excerpt
REWRITE FD-ACCTFILE-REC FROM ACCOUNT-RECORD | INVALID KEY | MOVE 109 TO WS-VALIDATION-FAIL-REASON | MOVE 'ACCOUNT RECORD NOT FOUND' | TO WS-VALIDATION-FAIL-REASON-DESC | END-REWRITE.
line
645
note
INVALID KEY handler does not abend (no 9999-ABEND-PROGRAM, STOP RUN, GOBACK, or EXIT PROGRAM); failure is silent
operation
REWRITE
paragraph
2800-UPDATE-ACCOUNT-REC
program
CBTRN02C
tolerated_statuses
[]
Status-variable mismatch 9300-DALYREJS-CLOSE · L740

Paragraph 9300-DALYREJS-CLOSE operates on a different file than XREFFILE-STATUS belongs to — error path MOVEs the wrong file's status to IO-STATUS

Recorded evidence and all detector fields

Source cites

  • 9300-DALYREJS-CLOSE @L740 [primary]

Resident row

line
740
moved_status_var
XREFFILE-STATUS
note
Paragraph 9300-DALYREJS-CLOSE operates on a different file than XREFFILE-STATUS belongs to — error path MOVEs the wrong file's status to IO-STATUS
paragraph
9300-DALYREJS-CLOSE
paragraph_file_key
DALYREJS
program
CBTRN02C
Accumulator double-write (paragraph not recorded) · (no line recorded)

POTENTIAL double-write: 'DALYTRAN-AMT' is added to 'TRAN-CAT-BAL' from multiple paragraphs. Survival across the second add is NOT mechanically provable — writers of its record 'DALYTRAN-RECORD': READ @ L437 (1000-DALYTRAN-GET-NEXT); MOVE @ L785 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L786 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L787 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L788 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L789 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L790 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L791 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L792 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L793 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L794 (Z-GET-DB2-FORMAT-TIMESTAMP). State the finding as potential; do NOT assert it occurs or cannot occur without source proof.

Recorded evidence and all detector fields

Source cites

  • (paragraph not recorded) @(no line recorded) [primary]
  • 2700-A-CREATE-TCATBAL-REC @L599 [sites]
  • 2700-B-UPDATE-TCATBAL-REC @L618 [sites]
  • 1000-DALYTRAN-GET-NEXT @L437 [writers:read_into:READ]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L785 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L786 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L787 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L788 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L789 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L790 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L791 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L792 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L793 [writers:write:MOVE]
  • Z-GET-DB2-FORMAT-TIMESTAMP @L794 [writers:write:MOVE]

Resident row

note
POTENTIAL double-write: 'DALYTRAN-AMT' is added to 'TRAN-CAT-BAL' from multiple paragraphs. Survival across the second add is NOT mechanically provable — writers of its record 'DALYTRAN-RECORD': READ @ L437 (1000-DALYTRAN-GET-NEXT); MOVE @ L785 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L786 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L787 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L788 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L789 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L790 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L791 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L792 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L793 (Z-GET-DB2-FORMAT-TIMESTAMP); MOVE @ L794 (Z-GET-DB2-FORMAT-TIMESTAMP). State the finding as potential; do NOT assert it occurs or cannot occur without source proof.
program
CBTRN02C
sites
  1. line
    599
    paragraph
    2700-A-CREATE-TCATBAL-REC
  2. line
    618
    paragraph
    2700-B-UPDATE-TCATBAL-REC
source
DALYTRAN-AMT
status
POTENTIAL
survival_record
DALYTRAN-RECORD
target
TRAN-CAT-BAL
writers
  1. kind
    read_into
    line
    437
    paragraph
    1000-DALYTRAN-GET-NEXT
    targets
    1. DALYTRAN-RECORD
    text
    READ DALYTRAN-FILE INTO DALYTRAN-RECORD.
    verb
    READ
  2. kind
    write
    line
    785
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-YYYY
    text
    MOVE COB-YYYY TO DB2-YYYY
    verb
    MOVE
  3. kind
    write
    line
    786
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-MM
    text
    MOVE COB-MM TO DB2-MM
    verb
    MOVE
  4. kind
    write
    line
    787
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-DD
    text
    MOVE COB-DD TO DB2-DD
    verb
    MOVE
  5. kind
    write
    line
    788
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-HH
    text
    MOVE COB-HH TO DB2-HH
    verb
    MOVE
  6. kind
    write
    line
    789
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-MIN
    text
    MOVE COB-MIN TO DB2-MIN
    verb
    MOVE
  7. kind
    write
    line
    790
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-SS
    text
    MOVE COB-SS TO DB2-SS
    verb
    MOVE
  8. kind
    write
    line
    791
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-MIL
    text
    MOVE COB-MIL TO DB2-MIL
    verb
    MOVE
  9. kind
    write
    line
    792
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-REST
    text
    MOVE '0000' TO DB2-REST
    verb
    MOVE
  10. kind
    write
    line
    793
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-STREEP-1
    2. DB2-STREEP-2
    3. DB2-STREEP-3
    text
    MOVE '-' TO DB2-STREEP-1 DB2-STREEP-2 DB2-STREEP-3
    verb
    MOVE
  11. kind
    write
    line
    794
    paragraph
    Z-GET-DB2-FORMAT-TIMESTAMP
    targets
    1. DB2-DOT-1
    2. DB2-DOT-2
    3. DB2-DOT-3
    text
    MOVE '.' TO DB2-DOT-1 DB2-DOT-2 DB2-DOT-3
    verb
    MOVE
COMPUTE without ROUNDED 1500-B-LOOKUP-ACCT · L494

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1500-B-LOOKUP-ACCT @L494 [primary]

Resident row

expression
ACCT-CURR-CYC-CREDIT - ACCT-CURR-CYC-DEBIT + DALYTRAN-AMT
line
494
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1500-B-LOOKUP-ACCT
program
CBTRN02C
target
WS-TEMP-BAL
target_pic
S9(09)V99.

CBTRN03C 2 findings

Accumulator double-write (paragraph not recorded) · (no line recorded)

CONFIRMED double-write: the source operand 'TRAN-AMT' lives in record 'TRAN-RECORD', whose only writer is a READ ... INTO (READ @ L381 (1000-TRANFILE-GET-NEXT)); a READ INTO does NOT modify the receiving area on AT END, so 'TRAN-AMT' retains the final record's value and is added a second time. Document this as a real defect — do NOT dismiss it as zeroed or mutually exclusive.

Recorded evidence and all detector fields

Source cites

  • (paragraph not recorded) @(no line recorded) [primary]
  • (paragraph not recorded) @L332 [sites]
  • 1100-WRITE-TRANSACTION-REPORT @L419 [sites]
  • 1000-TRANFILE-GET-NEXT @L381 [writers:read_into:READ]

Resident row

note
CONFIRMED double-write: the source operand 'TRAN-AMT' lives in record 'TRAN-RECORD', whose only writer is a READ ... INTO (READ @ L381 (1000-TRANFILE-GET-NEXT)); a READ INTO does NOT modify the receiving area on AT END, so 'TRAN-AMT' retains the final record's value and is added a second time. Document this as a real defect — do NOT dismiss it as zeroed or mutually exclusive.
program
CBTRN03C
sites
  1. line
    332
    paragraph
    null
  2. line
    419
    paragraph
    1100-WRITE-TRANSACTION-REPORT
source
TRAN-AMT
status
CONFIRMED
survival_record
TRAN-RECORD
target
WS-ACCOUNT-TOTAL
writers
  1. kind
    read_into
    line
    381
    paragraph
    1000-TRANFILE-GET-NEXT
    targets
    1. TRAN-RECORD
    text
    READ TRANSACT-FILE INTO TRAN-RECORD.
    verb
    READ
Accumulator double-write (paragraph not recorded) · (no line recorded)

CONFIRMED double-write: the source operand 'TRAN-AMT' lives in record 'TRAN-RECORD', whose only writer is a READ ... INTO (READ @ L381 (1000-TRANFILE-GET-NEXT)); a READ INTO does NOT modify the receiving area on AT END, so 'TRAN-AMT' retains the final record's value and is added a second time. Document this as a real defect — do NOT dismiss it as zeroed or mutually exclusive.

Recorded evidence and all detector fields

Source cites

  • (paragraph not recorded) @(no line recorded) [primary]
  • (paragraph not recorded) @L332 [sites]
  • 1100-WRITE-TRANSACTION-REPORT @L419 [sites]
  • 1000-TRANFILE-GET-NEXT @L381 [writers:read_into:READ]

Resident row

note
CONFIRMED double-write: the source operand 'TRAN-AMT' lives in record 'TRAN-RECORD', whose only writer is a READ ... INTO (READ @ L381 (1000-TRANFILE-GET-NEXT)); a READ INTO does NOT modify the receiving area on AT END, so 'TRAN-AMT' retains the final record's value and is added a second time. Document this as a real defect — do NOT dismiss it as zeroed or mutually exclusive.
program
CBTRN03C
sites
  1. line
    332
    paragraph
    null
  2. line
    419
    paragraph
    1100-WRITE-TRANSACTION-REPORT
source
TRAN-AMT
status
CONFIRMED
survival_record
TRAN-RECORD
target
WS-PAGE-TOTAL
writers
  1. kind
    read_into
    line
    381
    paragraph
    1000-TRANFILE-GET-NEXT
    targets
    1. TRAN-RECORD
    text
    READ TRANSACT-FILE INTO TRAN-RECORD.
    verb
    READ

COACTUPC 5 findings

COMPUTE without ROUNDED 1100-RECEIVE-MAP · L3487

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1100-RECEIVE-MAP @L3487 [primary]

Resident row

expression
FUNCTION NUMVAL-C(ACRDLIMI OF CACTUPAI)
line
3487
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1100-RECEIVE-MAP
program
COACTUPC
target
ACUP-NEW-CREDIT-LIMIT-N
target_pic
S9(10)V99.
COMPUTE without ROUNDED 1100-RECEIVE-MAP · L3501

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1100-RECEIVE-MAP @L3501 [primary]

Resident row

expression
FUNCTION NUMVAL-C(ACSHLIMI OF CACTUPAI)
line
3501
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1100-RECEIVE-MAP
program
COACTUPC
target
ACUP-NEW-CASH-CREDIT-LIMIT-N
target_pic
S9(10)V99.
COMPUTE without ROUNDED 1100-RECEIVE-MAP · L3515

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1100-RECEIVE-MAP @L3515 [primary]

Resident row

expression
FUNCTION NUMVAL-C(ACUP-NEW-CURR-BAL-X)
line
3515
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1100-RECEIVE-MAP
program
COACTUPC
target
ACUP-NEW-CURR-BAL-N
target_pic
S9(10)V99.
COMPUTE without ROUNDED 1100-RECEIVE-MAP · L3529

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1100-RECEIVE-MAP @L3529 [primary]

Resident row

expression
FUNCTION NUMVAL-C(ACRCYCRI OF CACTUPAI)
line
3529
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1100-RECEIVE-MAP
program
COACTUPC
target
ACUP-NEW-CURR-CYC-CREDIT-N
target_pic
S9(10)V99.
COMPUTE without ROUNDED 1100-RECEIVE-MAP · L3543

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 1100-RECEIVE-MAP @L3543 [primary]

Resident row

expression
FUNCTION NUMVAL-C(ACRCYDBI OF CACTUPAI)
line
3543
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
1100-RECEIVE-MAP
program
COACTUPC
target
ACUP-NEW-CURR-CYC-DEBIT-N
target_pic
S9(10)V99.

COACTVWC 1 finding

Uninvoked paragraph SEND-LONG-TEXT · L1706

Paragraph SEND-LONG-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L1707.

Recorded evidence and all detector fields

Source cites

  • SEND-LONG-TEXT @L1706 [primary]
  • SEND-LONG-TEXT @L1707 [sites:SEND_TEXT]
  • SEND-LONG-TEXT @L1714 [sites:RETURN]

Resident row

end_line
1716
line
1706
note
Paragraph SEND-LONG-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L1707.
paragraph
SEND-LONG-TEXT
program
COACTVWC
sites
  1. kind
    SEND_TEXT
    line
    1707
    paragraph
    SEND-LONG-TEXT
  2. kind
    RETURN
    line
    1714
    paragraph
    SEND-LONG-TEXT

COBIL00C 1 finding

COMPUTE without ROUNDED PROCESS-ENTER-KEY · L590

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • PROCESS-ENTER-KEY @L590 [primary]

Resident row

expression
ACCT-CURR-BAL - TRAN-AMT
line
590
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
PROCESS-ENTER-KEY
program
COBIL00C
target
ACCT-CURR-BAL
target_pic
S9(10)V99.

COCRDLIC 2 findings

Uninvoked paragraph SEND-PLAIN-TEXT · L2318

Paragraph SEND-PLAIN-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L2319.

Recorded evidence and all detector fields

Source cites

  • SEND-PLAIN-TEXT @L2318 [primary]
  • SEND-PLAIN-TEXT @L2319 [sites:SEND_TEXT]
  • SEND-PLAIN-TEXT @L2326 [sites:RETURN]

Resident row

end_line
2328
line
2318
note
Paragraph SEND-PLAIN-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L2319.
paragraph
SEND-PLAIN-TEXT
program
COCRDLIC
sites
  1. kind
    SEND_TEXT
    line
    2319
    paragraph
    SEND-PLAIN-TEXT
  2. kind
    RETURN
    line
    2326
    paragraph
    SEND-PLAIN-TEXT
Uninvoked paragraph SEND-LONG-TEXT · L2337

Paragraph SEND-LONG-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L2338.

Recorded evidence and all detector fields

Source cites

  • SEND-LONG-TEXT @L2337 [primary]
  • SEND-LONG-TEXT @L2338 [sites:SEND_TEXT]
  • SEND-LONG-TEXT @L2345 [sites:RETURN]

Resident row

end_line
2347
line
2337
note
Paragraph SEND-LONG-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L2338.
paragraph
SEND-LONG-TEXT
program
COCRDLIC
sites
  1. kind
    SEND_TEXT
    line
    2338
    paragraph
    SEND-LONG-TEXT
  2. kind
    RETURN
    line
    2345
    paragraph
    SEND-LONG-TEXT

COCRDSLC 2 findings

Uninvoked paragraph 9150-GETCARD-BYACCT · L1292

Paragraph 9150-GETCARD-BYACCT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains READ work at L1296.

Recorded evidence and all detector fields

Source cites

  • 9150-GETCARD-BYACCT @L1292 [primary]
  • 9150-GETCARD-BYACCT @L1296 [sites:READ]

Resident row

end_line
1322
line
1292
note
Paragraph 9150-GETCARD-BYACCT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains READ work at L1296.
paragraph
9150-GETCARD-BYACCT
program
COCRDSLC
sites
  1. kind
    READ
    line
    1296
    paragraph
    9150-GETCARD-BYACCT
Uninvoked paragraph SEND-LONG-TEXT · L1333

Paragraph SEND-LONG-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L1334.

Recorded evidence and all detector fields

Source cites

  • SEND-LONG-TEXT @L1333 [primary]
  • SEND-LONG-TEXT @L1334 [sites:SEND_TEXT]
  • SEND-LONG-TEXT @L1341 [sites:RETURN]

Resident row

end_line
1343
line
1333
note
Paragraph SEND-LONG-TEXT has no live inbound PERFORM, THRU, GO TO, or fall-through path from the program's recorded entry surfaces; its logic is dead at paragraph granularity. The dead paragraph still contains SEND_TEXT work at L1334.
paragraph
SEND-LONG-TEXT
program
COCRDSLC
sites
  1. kind
    SEND_TEXT
    line
    1334
    paragraph
    SEND-LONG-TEXT
  2. kind
    RETURN
    line
    1341
    paragraph
    SEND-LONG-TEXT

COPAUA0C 2 findings

COMPUTE without ROUNDED 6000-MAKE-DECISION · L916

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 6000-MAKE-DECISION @L916 [primary]

Resident row

expression
PA-CREDIT-LIMIT - PA-CREDIT-BALANCE
line
916
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
6000-MAKE-DECISION
program
COPAUA0C
target
WS-AVAILABLE-AMT
target_pic
S9(09)V99 COMP-3.
COMPUTE without ROUNDED 6000-MAKE-DECISION · L924

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • 6000-MAKE-DECISION @L924 [primary]

Resident row

expression
ACCT-CREDIT-LIMIT - ACCT-CURR-BAL
line
924
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
6000-MAKE-DECISION
program
COPAUA0C
target
WS-AVAILABLE-AMT
target_pic
S9(09)V99 COMP-3.

COPAUS0C 1 finding

Unreachable after transfer RETURN-TO-PREV-SCREEN · L1347

Control-flow hazard: statements after PERFORM RETURN-TO-PREV-SCREEN are unreachable because RETURN-TO-PREV-SCREEN terminates via XCTL.

Recorded evidence and all detector fields

Source cites

  • RETURN-TO-PREV-SCREEN @L1347 [primary]
  • RETURN-TO-PREV-SCREEN @L1357 [sites]

Resident row

line
1347
note
Control-flow hazard: statements after PERFORM RETURN-TO-PREV-SCREEN are unreachable because RETURN-TO-PREV-SCREEN terminates via XCTL.
paragraph
RETURN-TO-PREV-SCREEN
program
COPAUS0C
sites
  1. line
    1357
    paragraph
    RETURN-TO-PREV-SCREEN
status
DETECTED

COTRN02C 2 findings

COMPUTE without ROUNDED VALIDATE-INPUT-DATA-FIELDS · L871

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • VALIDATE-INPUT-DATA-FIELDS @L871 [primary]

Resident row

expression
FUNCTION NUMVAL-C(TRNAMTI OF COTRN2AI)
line
871
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
VALIDATE-INPUT-DATA-FIELDS
program
COTRN02C
target
WS-TRAN-AMT-N
target_pic
S9(9)V99
COMPUTE without ROUNDED ADD-TRANSACTION · L944

Decimal target without ROUNDED — implicit truncation per COBOL standard

Recorded evidence and all detector fields

Source cites

  • ADD-TRANSACTION @L944 [primary]

Resident row

expression
FUNCTION NUMVAL-C(TRNAMTI OF COTRN2AI)
line
944
note
Decimal target without ROUNDED — implicit truncation per COBOL standard
paragraph
ADD-TRANSACTION
program
COTRN02C
target
WS-TRAN-AMT-N
target_pic
S9(9)V99