It's not obvious from the code snippet. I agree with Mike Schwab, qualify the name. The duplicate could be in a COPY statement.
On Sat, Oct 9, 2021 at 11:24 AM Mike Schwab <[email protected]> wrote: > > 01 RECORD-NAME. > > 05 SUBSECTION-NAME. > > > MOVE SUBSECTION-NAME TO WS-SUBSECTION-NAME. > > > 25779 IGYPS0037-S "SUBSECTION-NAME" was not a uniquely defined name. > The definition to be used could not be determined from the > > context. The reference to the name was discarded. > > You have multiple SUBSECTION-NAME variables. You need to qualify by coding > MOVE SUBSECTION-NAME OF RECORD-NAME TO WS-SUBSECTION-NAME. > > Applies to all versions of COBOL. > > On Sat, Oct 9, 2021 at 1:02 AM Farley, Peter x23353 > <[email protected]> wrote: > > > > This is an Enterprise COBOL V6.2 question. I am not sure if this is a > compiler issue or a programmer misunderstanding issue. > > > > I have a COBOL subroutine which has multiple nested programs within it. > The general structure is as follows (it's actually far more complicated > with COPY members and such, but this shows the basic issue). Note > carefully that the INSIDE1 subroutine is declared COMMON because other > nested subroutines (not shown here) may also CALL it besides the CALL from > the top-level program: > > > > ID DIVISION. > > PROGRAM-ID. SUBMAIN. > > . . . . . > > WORKING-STORAGE SECTION. > > 01 RECORD-NAME. > > 05 SUBSECTION-NAME. > > 10 SUBSECTION-VAR PIC X. > > PROCEDURE DIVISION. > > . . . . . > > CALL "INSIDE1" USING RECORD-NAME. > > . . . . . > > > > ID DIVISION. > > PROGRAM-ID. INSIDE1 COMMON. > > . . . . . > > WORKING-STORAGE SECTION. > > 01 WS-AREA. > > 05 WS-SUBSECTION-NAME PIC X. > > LINKAGE SECTION. > > 01 RECORD-NAME. > > 05 SUBSECTION-NAME. > > 10 SUBSECTION-VAR PIC X. > > . . . . . > > PROCEDURE DIVISION USING RECORD-NAME. > > . . . . . > > MOVE SUBSECTION-NAME TO WS-SUBSECTION-NAME. > > . . . . . > > EXIT PROGRAM. > > END-PROGRAM INSIDE1. > > > > END-PROGRAM SUBMAIN. > > > > The MOVE statement in the nested subroutine INSIDE1 gets this COBOL > error: > > > > 25779 IGYPS0037-S "SUBSECTION-NAME" was not a uniquely defined name. > The definition to be used could not be determined from the > > context. The reference to the name was discarded. > > > > The V6.2 Language Reference Manual on page 60 says this about using > identical names in nested programs: > > > > "Identical names > > When programs are directly or indirectly contained within other > programs, each program can use identical > > user-defined words to name resources. > > A program references the resources that program describes rather than > the same-named resources > > described in another program, even if the names are different types of > user-defined words." > > > > Is that language in the manual telling me that I may have a compiler bug > here, or am I misunderstanding the language in the manual and have to code > the names used in the nested subroutine differently (e.g., by using a > unique prefix for all the common data names or at least for the top-level > name)? > > > > TIA for any assistance you can provide. > > > > Peter > > -- > > > > This message and any attachments are intended only for the use of the > addressee and may contain information that is privileged and confidential. > If the reader of the message is not the intended recipient or an authorized > representative of the intended recipient, you are hereby notified that any > dissemination of this communication is strictly prohibited. If you have > received this communication in error, please notify us immediately by > e-mail and delete the message and any attachments from your system. > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to [email protected] with the message: INFO IBM-MAIN > > > > -- > Mike A Schwab, Springfield IL USA > Where do Forest Rangers go to get away from it all? > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > -- Wayne V. Bickerdike ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
