A fix is available
APAR status
Closed as program error.
Error description
In COB V6, when a numeric-edited data value with an invalid sign is moved into an unsigned zoned-decimal data field, the following error is received: IGZ0063S An invalid sign was detected in a numeric edited sending field in xxxxxxxx on line number nn. This behavior is different than COB V4.2. In COBOL V4.2, if both the sender and receiver PIC strings are signed, then the sign checking is done and the IGZ0063S error occurs when an invalid sign is detected. However, if the sender and receiver are not both signed, then there is no error checking and no IGZ0063S message. COBOL V6 checks the sign regardless of whether or not both the sender and receiver are signed and issues the IGZ0063S message in all cases if an invalid sign is detected. This APAR will restore the COB V4.2 behavior. Example: WORKING-STORAGE SECTION. 01 WS-CHAR PIC X(16) VALUE '123456789012345+'. 01 FILLER REDEFINES WS-CHAR. 05 WS-AMT1 PIC 9(13)V99-. 01 WS-AMT2 PIC 9(13)V99. PROCEDURE DIVISION. MOVE WS-AMT1 TO WS-AMT2. <== Failing statement In the case above, WS-AMT1 is defined as PIC 9(13)V99-, which means the expected sign values for the data are a dash (negative) or a blank (positive). But the data value contains a "+", which is not valid. The receiving field, WS-AMT2, is unsigned.
Local fix
Correct the PIC definition to match the sign on the data value or correct the data value to match the PIC definition.
Problem summary
**************************************************************** * USERS AFFECTED: Users of Enterprise COBOL 6.1 compiling and * * running programs containing MOVE statements * * satisfying the following conditions: * * * * 1) The sender of the MOVE statement is * * numeric-edited and the receiver is numeric * * or numeric-edited. * * 2) The PIC string for the sender and * * receiver data items do not both indicate a * * signed data item. * * 3) The value of the sender data item at * * runtime has a sign value that is * * inconsistent with its PIC string (e.g., * * sender PIC is '9(13)v99-' but the sender * * value is '123456789012345+'). * * * **************************************************************** * PROBLEM DESCRIPTION: Program ABEND with the following * * message: * * IGZ0063S An invalid sign was detected * * in a numeric edited sending field in * * on line number. * * * **************************************************************** * RECOMMENDATION: Apply the provided PTF. * * * **************************************************************** The Enterprise 6.1 COBOL compiler handles this case by calling a library routine to de-edit the sender and store the de-edited result in a temp which is then moved to the receiver by calling an appropriate move routine. The problem is that the compiler was unconditionally considering the temp that holds the de-edited result to be signed, which caused the compiler to always verify the sign of the sender's value.
Problem conclusion
To be consistent with previous versions of the Enterprise COBOL compiler, the compiler was updated to only verify the sign of the sender's value when the sender and receiver of the MOVE statement are both signed data items, as indicated by their PIC strings.
Temporary fix
Comments
APAR Information
APAR number
PI63292
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-05-30
Closed date
2016-06-15
Last modified date
2016-07-04
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 UI38707
UP16/06/17 P F606
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