In our System, we have a module call chain as Program A calls Program B and Program B calls Program C.
Program A calls program B (call be reference, the default call) with a copybook of length X(600). But program B has Linkage section variable length as X(1).
Program B does not use this variable, it just passes it to Program C while calling by refernce. In program C, the linkage section is X(600) and this program actually processes the variables of the copybook.
So, Call by refernce does not need calling arguments and Called module Linkage section variables to be of same size until the called module processes the variable? Only if the number of arguments match between calling and called program, then the variable address can be passed?
Can someone please explain how this address translation is happening in this example?