codegen: sticky linkage "last_"-field undeclared
To be fair, because of exactly the operating system dependent behaviour, I didn't know if the CALL behaviour was a bug or not (I don't know if the Cobol standard says anything about it). I would have argued in the PROGRAM-ID discussion that in a sense the program name becomes a user defined word and therefore the case in the END PROGRAM statement should not matter, but the more I think about it, the program name does not become a user defined word because one cannot address it within the program...
Case sensitive program name
Wrong redefinition target for same named variables
Yeah, the first example results in an error: IGYDS1066-S "REDEFINES" object "WS-B" was not the immediately preceding level-2 data item. The "REDEFINES" clause was discarded. whereas the second doesn't... I reacted the same way when we tried that out. One thing that would be possible and may be useful in any case (also for the other places where we build an "internal filler" is to add a flag_internal_field to cb_field I agree, such a flag would probably be useful for future references. I did a little...
Exactly, in this case we would raise all WS-B* to 02. We also looked at cb_indirect_redefines, but that is a different setting. Indirect redefines allows A to be redefined by B and B by C (so a kind of chain of redefinitions). So something like this: 01 A PIC X. 01 B REDEFINES A PIC X. 01 C REDEFINES B PIC X. The problem with field#652-660 and why we adjusted it in the other place is that at field#660 one no longer has information about the fact that "FILLER 1" was inserted by cobc and not by the...
In the current GnuCOBOL (3.2-rc2) implementation (field.c#540) for the event of 01 WS-A. 03 WS-B PIC X. 02 WS-C PIC X. with relaxed level hierarchy, the tree is transformed to 01 WS-A. 02 "FILLER 1". 03 WS-B PIC X. 02 WS-C PIC X. in order to keep the level numbers. This leads to a problem in the moment of redefining WS-B from WS-C, because WS-C cannot find it on the same tree level anymore. Our proposed solution does not add the additional "FILLER 1", instead it transforms the tree to represent 01...
In the current GnuCOBOL implementation (field.c#540) for the event of 01 WS-A. 03 WS-B PIC X. 02 WS-C PIC X. with relaxed level hierarchy, the tree is transformed to 01 WS-A. 02 "FILLER 1". 03 WS-B PIC X. 02 WS-C PIC X. in order to keep the level numbers. This leads to a problem in the moment of redefining WS-B from WS-C, because WS-C cannot find it on the same tree level anymore. Our proposed solution does not add the additional "FILLER 1", instead it transforms the tree to represent 01 WS-A. 02...