User-defined words
Within a source element, a user-defined word can be used as only one type of source element.
Example 1
In the following example, the procedure name is the same as the program
identifier:
$ cat tcSameName.cbl
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. GREETING.
000030 ENVIRONMENT DIVISION.
000040 DATA DIVISION.
000050
000060 PROCEDURE DIVISION.
000070
000080 MY-PARAGRAPH.
000090 PERFORM GREETING.
000100 PERFORM END-PARAGRAPH.
000110
000120 GREETING.
000130 DISPLAY "WELCOME TO IBM COBOL for Linux 1.2.0...".
000140
000150 END-PARAGRAPH.
000160 DISPLAY "HAVE A NICE DAY!".
$ cob2 -o tcSameName tcSameName.cbl
IBM COBOL for Linux 1.2.0 compile started
0LineID Message code Message text
9 IGYPS3007-S "GREETING" was not defined as a procedure-name.
The statement was discarded.
-Messages Total Informational Warning Error Severe Terminating
0Printed: 1 1
End of compilation 1, program GREETING, highest severity: Severe.
Return code 12
Example 2
In the following example,
GREETING
is used as both a data name and a procedure
name:$ cat tcSameName2.cbl
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. TEST-CASE.
000030 ENVIRONMENT DIVISION.
000040 DATA DIVISION.
000050
000060 WORKING-STORAGE SECTION.
000070
000080 01 GREETING PIC X(20) VALUE "FROM IBM.".
000090 PROCEDURE DIVISION.
000100 MY-PROGRAM.
000110 PERFORM GREETING.
000120 STOP RUN.
000130
000140 GREETING.
000150 DISPLAY "HELLO " GREETING.
$ cob2 -o tcSameName tcSameName2.cbl
IBM COBOL for Linux 1.2.0 compile started
0LineID Message code Message text
11 IGYPS3007-S "GREETING" was not defined as a procedure-name.
The statement was discarded.
-Messages Total Informational Warning Error Severe Terminating
0Printed: 1 1
End of compilation 1, program TEST-CASE, highest severity: Severe.
Return code 12
According to Standard COBOL 2002, a user-defined words within a source element can be used as only one type of user-defined word.
Change your COBOL source to follow Standard COBOL 2002.
For Example 1:
$ cat sol-tcSameName.cbl
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. GREETING.
000030 ENVIRONMENT DIVISION.
000040 DATA DIVISION.
000050
000060 PROCEDURE DIVISION.
000070
000080 MY-PARAGRAPH.
000090 PERFORM HELLO.
000100 PERFORM END-PARAGRAPH.
000110
000120 HELLO.
000130 DISPLAY "WELCOME TO IBM COBOL for Linux 1.2.0...".
000140
000150 END-PARAGRAPH.
000160 DISPLAY "HAVE A NICE DAY!".
For Example 2:
$ cat sol-tcSameName2.cbl
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. TEST-CASE.
000030 ENVIRONMENT DIVISION.
000040 DATA DIVISION.
000050
000060 WORKING-STORAGE SECTION.
000070
000080 01 GREETING PIC X(20) VALUE "FROM IBM.".
000090 PROCEDURE DIVISION.
000100 MY-PROGRAM.
000110 PERFORM MY-GREETING.
000120 STOP RUN.
000130
000140 MY-GREETING.
000150 DISPLAY "HELLO " GREETING.