IBM Support

PH53458: COMPILER MESSAGES CONCERNING RESERVED WORDS ARE VERY UNCLEAR

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Compiler messages concerning reserved words are very unclear:
    
    ADDITIONAL SYMPTOMS:
    IGYDS1161-E The "PICTURE" clause for item "LOOP-FLAG" was not
    compatible with the specified "USAGE".  "USAGE DISPLAY" was
    assumed.
    

Local fix

  • BYPASS/CIRCUMVENTION:
    None
    
    RECOVERY ACTION:
    Apply PTF
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of the Enterprise COBOL V6.4       *
    *                 compiler who have accidentally coded a       *
    *                 reserved word as a data-item name and are    *
    *                 then confused about the actual problem,      *
    *                 based on the error messages generated        *
    *                 by the compiler.                             *
    ****************************************************************
    * PROBLEM DESCRIPTION: The customer had the                    *
    *                      following lines in their source program *
    *                      in the DATA DIVISION                    *
    *                      000025 01 MOVEE.                        *
    *                      000026 05 Loop-flag2 Pic 9(01).         *
    *                      000027 88 Loop-done2 Value 1.           *
    *                      000028 01 UTF-8.                        *
    *                      000029 05 Loop-flag3 Pic 9(01).         *
    *                      000030 88 Loop-done3 Value 1.           *
    *                      Then in the PROCEDURE DIVISION          *
    *                      000038 MOVE MOVEE TO UTF-8.             *
    *                      Output from the compiler listing:       *
    *                      000028 01 UTF-8.                        *
    *                      000029 05 Loop-flag3 Pic 9(01).         *
    *                      000029==> IGYDS1161-E The               *
    *                      "PICTURE" clause for item "LOOP-FLAG3"  *
    *                      was not compatible with the specified   *
    *                      "USAGE". "USAGE DISPLAY" was assumed.   *
    *                      000030 88 Loop-done3 Value 1.           *
    *                      000031                                  *
    *                      000032 Procedure Division.              *
    *                      000033                                  *
    *                      000034 Initialize Program-pass-fields   *
    *                      000035 Program-other-fields             *
    *                      000036 Program-flags.                   *
    *                      000037 000038 MOVE MOVEE TO UTF-8.      *
    *                      000038==> IGYPS2000-S Expected a        *
    *                      data-name, but found "UTF-8". The       *
    *                      "MOVE" statement was                    *
    *                      discarded.                              *
    ****************************************************************
    * RECOMMENDATION: Apply the IBM provided PTF.                  *
    ****************************************************************
    The customer complained that the messages on lines 29 and 38 do
    not really point out that the problem originated on line 28.
    Note that it is completely legal to define a data-item without a
    data-item name, giving only the data USAGE type. The following
    is legal COBOL:
    000028 01 UTF-8.
    This results in the compiler assuming a data-item name of
    "FILLER" and a data USAGE type of "UTF-8" which will be
    propagated to the sub-items below the 01 group data item.
    The programmer did not understand this though, and
    assumed that they were creating a data-item named "UTF-8".
    So the compiler is actually parsing this statement as if it were
    specified as
    000028 01 FILLER USAGE UTF-8.
    

Problem conclusion

  • To help the programmer better understand the actual error, the
    IGYDS1161-E error message has been changed from this
    000028 01 UTF-8.
    000029 05 Loop-flag3 Pic 9(01).
    000029==> IGYDS1161-E The "PICTURE" clause
    for item "LOOP-FLAG3" was not compatible with the specified
    "USAGE". "USAGE DISPLAY" was assumed.
    000030 88 Loop-done3 Value 1.
    To the following, which more clearly indentifies the problem
    created by the data-item definition statement on line 28:
    000028 01 UTF-8.
    000029 05 Loop-flag3 Pic 9(01).
    000029==> IGYDS1161-E The "PICTURE" clause in the data
    definition was not compatible with the specified
    "USAGE UTF-8". "USAGE DISPLAY" was assumed.
    000030 88 Loop-done3 Value 1.
    The statement on line 28 is legal COBOL, but the
    definition conflicts with the USAGE type for
    Loop-flag3 as coded on line 29.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH53458

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    640

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2023-03-23

  • Closed date

    2023-04-18

  • Last modified date

    2023-05-16

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PH53814 PH54552

Modules/Macros

  • IGY8CICS IGY8RWRD IGY8RWTU IGYCASMB IGYCCBE  IGYCCCRT IGYCCICS
    IGYCCSRV IGYCDGEN IGYCDIAG IGYCDMAP IGYCEN$0 IGYCEN$1 IGYCEN$2
    IGYCEN$3 IGYCEN$4 IGYCEN$5 IGYCEN$8 IGYCEN$D IGYCEN$R IGYCFGEN
    IGYCFREE IGYCINIT IGYCJA$0 IGYCJA$1 IGYCJA$2 IGYCJA$3 IGYCJA$4
    IGYCJA$5 IGYCJA$8 IGYCJA$D IGYCJA$R IGYCJBLD IGYCJDM6 IGYCJDMR
    IGYCJGEN IGYCLIBR IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2 IGYCLVL3
    IGYCLVL8 IGYCMALL IGYCOSCN IGYCPGEN IGYCRCTL IGYCRDPR IGYCRDSC
    IGYCREAL IGYCRWT  IGYCSCAN IGYCSIMD IGYCUE$0 IGYCUE$1 IGYCUE$2
    IGYCUE$3 IGYCUE$4 IGYCUE$5 IGYCUE$8 IGYCUE$D IGYCUE$R IGYCXREF
    IGYDRV   IGYEQCWI IGYMSGE  IGYMSGK  IGYMSGT  IGYQCBE  IGYQSPLT
    IGYZQEN6 IGYZQENU IGYZQJP6 IGYZQJPN
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R640 PSY UI91480

       UP23/04/26 P F304

  • R641 PSY UI91481

       UP23/04/26 P F304

  • R642 PSY UI91482

       UP23/04/26 P F304

  • R64H PSY UI91483

       UP23/04/26 P F304

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"640","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
12 December 2023