The REDEFINES clause should give a warning. It does not always appear.
The message "IGYDS1154-W "ABCD44" redefined a smaller item" is missing.
Diagnosing the problem
In this example, the ABCD44 should produce the same error message as you see for ABCD44G.
01 ABCD4 PICTURE X(4).
01 ABCD44 REDEFINES ABCD4.
02 ABCD44-1 PICTURE 9(2).
02 ABCD44-2 PICTURE 9(2).
02 ABCD44-3 PICTURE 9(2).
05 ABCD44H PICTURE X(4).
05 ABCD44G REDEFINES ABCD44H.
IGYDS1154-W "ABCD44G" redefined a smaller item.
06 ABCD44G-1 PICTURE 9(2).
06 ABCD44G-2 PICTURE 9(2).
06 ABCD44G-3 PICTURE 9(2).
Resolving the problem
We intentionally did not diagnose the 01 level redefines. We only issue message 1154 if the redefines is a non 01 level because it changes the length of the 01 group item that contains the redefines item. This is working as designed.
|Software Development||COBOL for AIX||Compiler|
Rate this page:
Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.