IBM Support

PI36105: (COB V5.2) COBOL FE PRODUCES ILLEGAL CODE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • (COB V5.2) COBOL FE PRODUCES ILLEGAL W-CODE
    The attached program generates error message(s)
    LineID  Message code  Message text
    37  IGYPA3055-E   Numeric literal "1000000000" was more than 9
                      digits, the maximum allowed length for the
                      "TIMES" operand of a "PERFORM" statement.
                      The literal was truncated to "000000000".
    Same message on line:     45
    However, it then does generate W-Code and invoke the BE.
    The W-Code has this error in it:
    DEF  table_type=lit count=43;
    CONV  len=4 dt=integer;    // Stack: 1:[<i4>TS2=7]<i4>
    STR  id_no=238{"TS2=6"};    // Action: [ TS2=6 = <i4>TS2=7 ]
    KILL  id_no=239{"TS2=7"};
    LDC  cindex=238;
    //>>> Error: Reference to undefined literal with cindex=238.
        // Stack: 1:[(lit #238)]<?0>
    LDC  cindex=7{0};    // Stack: 2:[0]<i4>
    LEQ  ;
    That reference to cindex=238 causes a back end crash.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: User of Enterprise COBOL V5.2 compiling and  *
    *                 running programs that contain PERFORM        *
    *                 integer-1 TIMES statements, where integer-1  *
    *                 has more than 9 digits                       *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Incorrect output                        *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply provided service.                      *
    *                                                              *
    ****************************************************************
    When compiling a PERFORM 1000000000 TIMES statement the compiler
    generated a bad code sequence after truncating the literal to
    000000000.
    

Problem conclusion

  • The compiler was modified so when the PERFORM integer-1 TIMES
    statement has a large integer the integer is not truncated.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI36105

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655W3200

  • Reported release

    520

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-03-02

  • Closed date

    2015-05-21

  • Last modified date

    2015-06-01

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

    PI36103

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

Modules/Macros

  •    IGYCCBE
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655W3200

Applicable component levels

  • R520 PSY UI27877

       UP15/05/28 P F505

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":"520","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
11 November 2021