A fix is available
APAR status
Closed as program error.
Error description
change COBOL V5/V6 to have the same AMODE settings in the ESD records (compiler output object program) to be that same as in COBOL v3/V4. When RMODE(24) is in effect, the compiler will set AMODE(ANY) as in COBOL V4.2 and before. Scenario: When an AMODE24 assembler program does LINK (or LOAD & BSM) to COBOL program, V3.4 COBOL program runs as AMODE24 while V6 COBOL program runs as AMODE31. If the assembler program passes the parameter address with 'dirty' highorder bits, such as 'FF123456' which should be '00123456', the AMODE24 (V3.4) program works without problem but AMODE31 (V6) program gets S0C4 abend.
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL V6.1 compiling * * and running programs that are 'dynamically' * * called by AMODE 24 assembler programs. * * (Dynamically means LOAD and BRANCH or SVC * * LINK.) 'Static' calls where the programs * * are linked together by the Program * * Management Binder (linkage editor) do not * * have a problem. * * * **************************************************************** * PROBLEM DESCRIPTION: ABEND 0C4 at runtime if AMODE 24 * * parameters are passed with 'dirty' * * addresses (IE: not clean AMODE 31 * * addresses) This happens whether the * * COBOL program was compiled with * * RMODE(24) or RMODE(ANY). * * * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * * * **************************************************************** In COBOL V4 and earlier, the Object Program output from the compiler was marked as AMODE ANY, so a separate COBOL program would get AMODE ANY from the Binder. In COBOL V5 and V6, as shipped, the compiler marked the object programs as AMODE MIN, which resulted in the Binder giving the executable AMODE 31. This in turn caused the program to get control in AMODE 31 which caused an ABEND 0C4 when the program tried to use the dirty addresses. In older COBOL, with AMODE ANY, the program got control in AMODE 24, the AMODE of the calling program, and the addresses of the parameters were interpreted correctly.
Problem conclusion
The compiler is changed to mark the Object Program as AMODE ANY when RMODE(24) is in effect. For RMODE(ANY), the Object Program is still marked with AMODE MIN.
Temporary fix
Comments
APAR Information
APAR number
PI67026
Reported component name
ENT COBOL FOR Z
Reported component ID
5655EC600
Reported release
610
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-08-04
Closed date
2016-09-08
Last modified date
2016-10-06
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
IGYCRCTL
Fix information
Fixed component name
ENT COBOL FOR Z
Fixed component ID
5655EC600
Applicable component levels
R610 PSY UI40709
UP16/09/24 P F609
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"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.1","Edition":"","Line of Business":{"code":"LOB70","label":"Z TPS"}}]
Document Information
Modified date:
05 September 2024