IBM Support

PH60940: NEW FUNCTION: More flexible allocation of function temporaries via the FUNCTEMP compiler option

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • When using STACK(,,BELOW) due to dynamic calls to AMODE(24)
    modules, allocation of large function temporaries on the stack,
    for example for functions national-of and display-of, can lead
    to storage exhaustion below the line.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.4 compiling and  *
    *                 running programs that invoke intrinsic       *
    *                 functions with an argument that is a         *
    *                 reference modified data item that is large   *
    *                 but where either the length of the reference *
    *                 modification can be determined at            *
    *                 compile-time and is small or it is a varying *
    *                 length reference modification of a PIC X(1)  *
    *                 item defined in the LINKAGE section.         *
    ****************************************************************
    * PROBLEM DESCRIPTION: The program runs out of stack memory at *
    *                      runtime.                                *
    ****************************************************************
    * RECOMMENDATION: Apply the IBM-provided PTF                   *
    ****************************************************************
    When calculating the size of result temps for alphanumeric
    intrinsic functions with reference-modified arguments, the
    maximum size of the reference modified item was being used to
    determine the size of the result temp even when the size of the
    reference modification could be determined at compile-time and
    was much smaller. Furthermore, in the case of PIC X(1) items in
    the LINKAGE section, since those are treated as unbounded items
    by the compiler, when they have a varying length refmod, we
    cannot assume anything about the max length of the underlying
    item, so we should be allocating their result temps dynamically
    at runtime using the exact length of the corresponding reference
    modification in order to avoid problems of allocating too much
    or too little memory.
    

Problem conclusion

  • The compiler was updated to use the length of compile-time known
    reference modifications when calculating the size of result
    temps for alphanumeric intrinsic functions, and was also updated
    to handle the result temps for varying length reference
    modifications of PIC X(1) items in the LINKAGE sections using
    dynamic allocation at runtime with the exact length of the
    reference modification in order to avoid using too much or too
    little memory.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH60940

  • 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

    2024-04-17

  • Closed date

    2024-04-17

  • Last modified date

    2024-05-01

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

    PH56279

  • 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 IGYCJDM1 IGYCJDM2 IGYCJDM3 IGYCJDM4 IGYCJDM5
    IGYCJDM6 IGYCJDMB IGYCJDMJ IGYCJDMR IGYCJGEN IGYCLIBR IGYCLSTR
    IGYCLVL0 IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOPI
    IGYCOPT  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 UI96527

       UP24/04/26 P F404

  • R641 PSY UI96528

       UP24/04/26 P F404

  • R642 PSY UI96529

       UP24/04/26 P F404

  • R64H PSY UI96530

       UP24/04/26 P F404

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":"640","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
02 May 2024