Problem:
lk-i-row-address is defined as pic 9(02) and ws-pos-row is defined as unsigned-int. lk-i-row-address has a value of 4 yet after the move ws-pos-row contains a value of 60.
This only happens the second time into this subroutine.
Resolution:
This behavior was introduced in version 7.1.0 by ECN 3214 (text included below) and can be corrected by setting "ECN-3214 OFF" in a configuration file.
SUBJECT: LINKAGE data binding optimization
Change Number: ECN-3214
Status:   ; Complete
Type of Change: Enhancement
Priority: &nb sp; Medium
Incidents: None
Date: & nbsp; 2005-08-11
Product: &nbs p;ACUCOBOL-GT
Module:   ;runtime
New Version: 7.1.0
Machines Affected: All
Known Versions Affected: All
DESCRIPTION of problem or enhancement:
When a COBOL program calls a subprogram with linkage, part of the process
of beginning execution of the subprogram involves binding all of the LINKAGE
SECTION data to the items passed by the caller. In some situations, in
which a program CALLs a subprogram multiple times from the same location
with the same variables (even with different data), that binding is not
needed because it has been done already.
This enhancement modifies the runtime so that the extraneous binding will
not be done, optimizing CALL statements.
WORKAROUND:
None.
INSTRUCTIONS for use:
Install the new runtime. Note that this does not require any COBOL programs
to be recompiled.
There is a new config variable ECN-3214 which, when set to the non-default
value of FALSE, causes the runtime to bind data as it has in all previous
versions, essentially removing the benefits of this ECN. When set to the
default value of TRUE, this ECN is in effect.
