Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace COBOL Compilers
Created by Guest
Created on Sep 17, 2018

Automatic internal conversion of indices to index

When a data-item declared in Working-Storage or Local-Storage is used to access the elements of a table (OCCURS), and is not used to access other tables (data-item dedicated to a table), this data-item could be automatically converted to INDEX format at the binary code level.

The conditions necessary for this automatic internal conversion would be:
- the optimization level requested for the program is greater than 0
- the data-item can not be accessed outside the scope of the code of the current program
-> the data-item is declared in Working-Storage or Local-Storage (not in Linkage or File Section)
-> the data-item is not declared EXTERNAL
-> the data-item is not declared VOLATILE
-> the data-item is not declared GLOBAL
- the data-item is not manipulated through a structure: all access to the data-item is done directly by direct reference to this data-item
-> the data-item is not the subject of a REDEFINES
-> the data-item is not loaded or read using a MOVE on a higher level structure (but it may be dependent on a higher level structure, see use case)
- the data-item is not used to access more than one table, but it can be used in calculations as a source or destination
-> all source level instructions using this data-item must be adapted to the INDEX format: MOVE replaced by SET TO, ADD and SUBSTRACT replaced by SET UP / DOWN BY, etc.

Alternative: (for debugging or simpler implementation mechanism), the internal representation in memory of the data-item could be kept and duplicated with the INDEX format associated with the table
- statements modifying the value of the data-item would then immediately be followed by an internal statement "SET format-index TO format-native".
- all accesses to the table associated with the data-item would be made with the INDEX format associated with the data-item

Note: These automatic indexes must support the assignment corresponding to indices of value 0, or even of negative value. The value of the index will be checked when accessing the table according to the SSRANGE compilation option.

Idea priority Low