IBM Support

PH68249: IGYPG3173-W & IGYPG3174-W INCORRECTLY ISSUED FOR EVALUATE WHEN ... THRU STATEMENT IS USED

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • IGYPG3173-W & IGYPG3174-W incorrectly issued for EVALUATE WHEN
    ... THRU statement is used
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of the Enterprise COBOL V6.5           *
    *                 compiler who compile source programs         *
    *                 with an EVALUATE statement that includes a   *
    *                 WHEN ...  THRU phrase where the range of     *
    *                 values includes the largest value that can   *
    *                 be represented by the EVALUATE subject.      *
    ****************************************************************
    * PROBLEM DESCRIPTION: Incorrect Output. The compiler may      *
    *                      issue messages IGYPG3173-W or           *
    *                      IGYPG3174-W, complaining about          *
    *                      something similar to "The result of the *
    *                      comparison of operands A and 9999 is    *
    *                      known at compile time, based on the     *
    *                      attributes of the operands.             *
    *                      Unconditional code was generated."      *
    ****************************************************************
    * RECOMMENDATION: Apply the IBM provided PTF                   *
    ****************************************************************
    The customer source program contained the following
    data item definition in the DATA DIVISION.
      10 W-PER-LIQ-P       PIC S9(4)    VALUE ZEROS.
    Several source code statements then conditionally
    change the value of W-PER-LIQ-P.
    Then in the PROCEDURE DIVISION.
      EVALUATE W-PER-LIQ-P
         WHEN 1
            MOVE 'D'                      TO W-PERIODO-LIQ
         WHEN 2 THRU 7
            MOVE 'W'                      TO W-PERIODO-LIQ
         WHEN 8 THRU 15
            MOVE 'Q'                      TO W-PERIODO-LIQ
         WHEN 16 THRU 30
            MOVE 'M'                      TO W-PERIODO-LIQ
         WHEN 31 THRU 60
            MOVE 'B'                      TO W-PERIODO-LIQ
         WHEN 61 THRU 90
            MOVE 'T'                      TO W-PERIODO-LIQ
         WHEN 91 THRU 180
            MOVE 'S'                      TO W-PERIODO-LIQ
         WHEN 181 THRU 9999
            MOVE 'A'                      TO W-PERIODO-LIQ
      END-EVALUATE
    This results in the compiler issuing the incorrect
    message, as follows.
    IGYPG3173-W The result of the comparison of
    operands W-PER-LIQ-P and 9999 is known at compile
    time,  based on the attributes of the operands.
    Unconditional code was generated.  What is actually
    happening internally is that the compiler translates
        WHEN 181 THRU 9999 into the generated statement:
            If W-PER-LIQ-P>=181 and W-PER-LIQ-P<= 9999
    The second part of this generated statement is what causes the
    compiler to issue the IGYPG3173-W message. But the compiler
    should not have issued the message for an internally generated
    comparison. The compiler user did not code this comparison
    statement in their source program.
    

Problem conclusion

  • The compiler has been changed so that it will no longer issue
    the IGYPG3173-W or IGYPG3174-W messages for internally generated
    comparisons, resulting from WHEN ... THRU clauses in an EVALUATE
    statement, when the second conditional name  value represents
    the largest value that can be held by the EVALUATE subject.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH68249

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    650

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-09-23

  • Closed date

    2025-09-24

  • Last modified date

    2025-10-02

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

    PH66803

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

Modules/Macros

  • 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 IGYCJDMJ IGYCJDNJ IGYCJGEN IGYCLIBR
    IGYCLSTR IGYCLVL0 IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL
    IGYCOB2  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

  • R650 PSY UO05070

       UP25/10/01 P F509

  • R651 PSY UO05071

       UP25/10/01 P F509

  • R652 PSY UO05072

       UP25/10/01 P F509

  • R65H PSY UO05073

       UP25/10/01 P F509

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":"BU048","label":"IBM Software"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.5","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
02 October 2025