IBM Support

PH12015: The compiler generates incorrect code resulting in the comparison being incorrect.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • USERS AFFECTED: Users of Enterprise COBOL Vx.x compiling
    programs with NORENT that compare data items in fairly close
    proximity in WORKING-STORAGE.
    
    PROBLEM DESCRIPTION: The compiler generates incorrect code
    when computing the address of the second item being compared,
    resulting in the comparison being incorrect.
    
    RECOMMENDATION TO CUSTOMER: Apply the provided PTF.
    
    PROBLEM SUMMARY: For items in close proximity, the address
    computations might involve the same address multiple times. In
    generating code for this address, the compiler can choose to
    reuse an existing register or use a new one. If the common
    address was referenced at least once in the computation of the
    first data item's address and more than once in the computation
    of the second data item's address, the compiler might generate
    an instruction that reused a register as part of the second data
    item's computation, before the first data item's computation was
    complete, causing the first data item's computation to be
    incorrect.
    
    CONCLUSION: The compiler was fixed to never reuse a register in
    computing an address when that register was possibly still in
    use by another address computation.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V5.2 compiling     *
    *                 programs with NORENT that compare data       *
    *                 items in fairly close proximity in           *
    *                 WORKING-STORAGE.                             *
    ****************************************************************
    * PROBLEM DESCRIPTION: The compiler generates incorrect code   *
    *                      when computing the address of the       *
    *                      second item being compared, resulting   *
    *                      in the comparison being incorrect.      *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    For items in close proximity, the address computations might
    involve the same address multiple times. In generating code for
    this address, the compiler can choose to reuse an existing
    register or use a new one. If the common address was
    referenced at least once in the computation of the first data
    item's address and more than once in the computation of the
    second data item's address, the compiler might generate an
    instruction that reused a register as part of the second
    data item's computation,
    before the first data item's computation was complete, causing
    the first data item's computation to be incorrect.
    

Problem conclusion

  • The compiler was fixed to never reuse a register in computing an
    address when that register was possibly still in use by another
    address computation.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH12015

  • 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

    2019-05-13

  • Closed date

    2019-06-12

  • Last modified date

    2019-07-04

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

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

    PH13068 PH14172

Modules/Macros

  • IGY8RWTU IGYCBE   IGYCCBE  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 IGYCLIBH IGYCLIBO 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 IGYECWI  IGYMSGE  IGYMSGK  IGYMSGT
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655W3200

Applicable component levels

  • R520 PSY UI63603

       UP19/06/18 P F906

  • R521 PSY UI63604

       UP19/06/19 P F906

  • R522 PSY UI63605

       UP19/06/19 P F906

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"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
04 July 2019