BTW: <ad> if you are in Europe and you want me to hold a class on such things in German or English, please contact me offline. </ad>
Kind regards Bernd Am Donnerstag, 9. Oktober 2008 09:47 schrieb Bernd Oppolzer: > A variable which is listed in the storage offset listing as 0(r13) > actually never is held in storage, but it resides in a register all the > time. 0(r13) simply means that no storage is allocated for this variable > (this is not very nice, I asked the compiler people several times to fix > this. Some compiler versions simply give no offset at all in these cases, > only a line with the variable name and a comma instead of an offset.) > > A variable without allocated storage must be a simple local variable > which fits into a register (that is, a pointer, long, int, double etc.). > This is never the case for parameters (they are addressed with r1 and > never transferred by registers, always storage), or parts of a struct, > or variables which need to be addressed by pointer. And, of course, > not for char arrays, decimal values and so on, because they must reside > in storage. > > The only way to determine the actual register number is to look at the > assembly code around the error place. If you have something like > > x = 0; > > *** la r6,0 > > you know, for example, that r6 is used to hold the value of x. > > Kind regards > > Bernd > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html