Skip to content

CANCEL statement does not work in some cases #121

@yutaro-sakamoto

Description

@yutaro-sakamoto

TEST18.cbl

      ******************************************************************
       IDENTIFICATION              DIVISION.
      ******************************************************************
       PROGRAM-ID.                 TEST18.
       AUTHOR.                     USER01.
       DATE-WRITTEN.               2023-04-19.
      ******************************************************************
       ENVIRONMENT                 DIVISION.
      *
      ******************************************************************
       DATA                        DIVISION.
      ******************************************************************
      *
       WORKING-STORAGE             SECTION.
       01  WK-X         PIC X(02).
      ******************************************************************
       PROCEDURE                   DIVISION.
      ******************************************************************
       MAIN-RTN.
      *
           MOVE  "AA"  TO  WK-X.
           CALL "TEST18-1" USING WK-X.
           MOVE  "BB"  TO  WK-X.
           CALL "TEST18-1" USING WK-X.
           CALL "TEST18-1" USING WK-X.
           CALL "TEST18-1" USING WK-X.
           CALL "TEST18-1" USING WK-X.
           CANCEL "TEST18-1".
           CALL "TEST18-1" USING WK-X.
      *
           STOP RUN.
      *

TEST18-1.cbl

      ******************************************************************
       IDENTIFICATION              DIVISION.
      ******************************************************************
       PROGRAM-ID.                 TEST18-1.
       AUTHOR.                     USER01.
       DATE-WRITTEN.               2023-04-19.
      ******************************************************************
       ENVIRONMENT                 DIVISION.
      *
      ******************************************************************
       DATA                        DIVISION.
      ******************************************************************
      *
       WORKING-STORAGE             SECTION.
       01  WK-9         PIC 9(02) VALUE ZERO.
      *
       LINKAGE                     SECTION.
       01  LK-X         PIC X(02).
      ******************************************************************
       PROCEDURE                   DIVISION USING LK-X.
      ******************************************************************
       MAIN-RTN.
      *
           EVALUATE  LK-X
            WHEN "AA"
              MOVE  ZERO  TO  WK-9
            WHEN "BB"
              ADD  1  TO  WK-9
              DISPLAY WK-9 UPON CONSOLE
           END-EVALUATE.
      *
           GOBACK.
      *

Execution result of TEST18.cbl

01
02
03
04
05

The result implies that CANCEL statement does not work correctly.
On the other hand, after renaming PROGRAM-ID TEST18 and TEST18-1 to a and b respectively and editing CALL statements, the CANCEL statement works correctly.
The character - in PROGRAM-ID may cause the error.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions