IBM Support

PI95081: ADDING A NEW PHRASE LOC TO THE ALLOCATE STATEMENT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Adding a new phrase LOC to the ALLOCATE statement
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.2 who want to    *
    *                 use the ALLOCATE statement to acquire        *
    *                 dynamic storage below the 16 MB line when    *
    *                 the DATA(31) compiler option is in effect,   *
    *                 or acquire dynamic storage above the 16 MB   *
    *                 line when the DATA(24) compiler option is    *
    *                 in effect.                                   *
    ****************************************************************
    * PROBLEM DESCRIPTION: New function: Users need more           *
    *                      flexibility in controlling the          *
    *                      location of dynamic storage acquired    *
    *                      by the ALLOCATE statement.  This APAR   *
    *                      provides a new, optional phrase of the  *
    *                      ALLOCATE statement, LOC (24|31), that   *
    *                      overrides the influence of the DATA     *
    *                      compiler option when determining the    *
    *                      location of dynamic storage that is     *
    *                      acquired.                               *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    When using the ALLOCATE statement before this APAR fix, the
    location of dynamic storage acquired is solely determined by
    the value of the DATA compiler option.  If DATA(24) is in
    effect, dynamic storage is acquired below the 16 MB line; if
    DATA(31) is in effect, dynamic storage is acquired from above
    the 16MB line, when possible.  However, users need a way to
    acquire dynamic storage from below the 16 MB line when DATA(31)
    is in effect and a way to acquire dynamic storage from above
    the 16 MB line when DATA(24) is in effect.
    

Problem conclusion

Temporary fix

Comments

  • The compiler was updated to support a new LOC phrase of the
    ALLOCATE statement, allowing users to control the location of
    dynamic storage independent of the DATA compiler option.
    
    +-------------------------------------------------------------+
    | Start of changes for:                                       |
    | Enterprise COBOL for z/OS Language Reference, SC27-8713-00  |
    
    Part 6. Procedure division,
    Chapter 15: Procedure division statements
    
    Update the description of section "ALLOCATE statement".
    
    ALLOCATE statement
    
    Format
    
     >>-ALLOCATE--+-arithmetic-expression-1--CHARACTERS-+--------->
                  '-data-name-1-------------------------'
    
     >-+-------------+-+------------+-+------------------------+-><
       '-INITIALIZED-' '-LOC-+-24-+-' '-RETURNING--data-name-2-'
                             '-31-'
    ...
    
    LOC phrase
    
    The LOC phrase controls how ALLOCATE acquires storage.
    
    LOC 24 . Causes ALLOCATE to acquire storage from below the
    16 MB line, regardless of the setting of the DATA option.
    
    LOC 31 . Causes ALLOCATE to attempt to acquire storage
    from above the 16 MB line, regardless of the setting of the
    DATA option.  Note that it is still possible that memory
    is acquired below the 16 MB line with LOC 31 if memory above
    the 16 MB line is exhausted.
    
    ...
    
    When the LOC phrase is not specified:
    
        - LOC 31 is assumed to be specified whenever the
        DATA(31) compiler option is in effect.
    
        - LOC 24 is assumed to be specified whenever the
        DATA(24) compiler option is in effect.
    
    Note: It is recommended to use the default value of LOC unless
    dynamic storage below the 16 MB line is required when DATA(31)
    is in effect, or dynamic storage above the 16 MB line is
    desired when the DATA(24) option is in effect.
    
    ...
    
    The DATA compiler option setting influences how ALLOCATE
    acquires storage:
    
        - If DATA(24) is in effect and the LOC 31 phrase of the
        ALLOCATE statement is not specified, ALLOCATE acquires
        storage from below the 16 MB line.
    
        - If DATA(31) is in effect and the LOC 24 phrase of the
        ALLOCATE statement is not specified, ALLOCATE will attempt
        to acquire storage from above the 16 MB line.
    
    
    Appendix A.  IBM Extensions
    
    Add a new row to
    "Table 56. IBM extension language elements" as follows:
    
    .-------------------------------------------------------------.
    | ALLOCATE statement      |  LOC phrase                       |
    '-------------------------------------------------------------'
    
    | End of changes for:                                         |
    | Enterprise COBOL for z/OS Language Reference, SC27-8713-00  |
    +-------------------------------------------------------------+
    
    +-------------------------------------------------------------+
    | Start of changes for:                                       |
    | Enterprise COBOL for z/OS Programming Guide, SC27-8714-00   |
    
    Part 1. Coding your program
    Chapter 2. Using data
    
    Update section "Storage and its addressability"
    
    Add new sub-section:
    
    Storage for ALLOCATE statement
    
    The DATA compiler option setting influences how ALLOCATE
    acquires storage:
    
        - If DATA(24) is in effect and the LOC 31 phrase of the
        ALLOCATE statement is not specified, ALLOCATE acquires
        storage from below the 16 MB line.
    
        - If DATA(31) is in effect and the LOC 24 phrase of the
        ALLOCATE statement is not specified, ALLOCATE will attempt
        to acquire storage from above the 16 MB line.
    
    | End of changes for:                                         |
    | Enterprise COBOL for z/OS Programming Guide, SC27-8714-00   |
    +-------------------------------------------------------------+
    

APAR Information

  • APAR number

    PI95081

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655EC600

  • Reported release

    620

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-03-13

  • Closed date

    2018-03-15

  • Last modified date

    2018-04-03

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

    PI92944

  • 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 IGYCLIBH IGYCLIBO IGYCLIBR IGYCLSTR IGYCLVL0
    IGYCLVL1 IGYCLVL2 IGYCLVL3 IGYCLVL8 IGYCMALL IGYCOPI  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  IGYWCL   IGYWCLG  IGYZQDRV IGYZQENU
    IGYZQJPN
    

Publications Referenced
SC27871300SC27871400   

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655EC600

Applicable component levels

  • R620 PSY UI54510

       UP18/03/28 P F803

  • R621 PSY UI54511

       UP18/03/28 P F803

  • R622 PSY UI54512

       UP18/03/28 P F803

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

Document Information

Modified date:
12 December 2023