From: Jim Kingdon Date: Fri, 23 Apr 1993 14:51:03 +0000 (+0000) Subject: * stabs.texinfo (Parameters): Keep trying to get this right. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a2a2eac845d366f089013009176b6f03da46bea5;p=binutils-gdb.git * stabs.texinfo (Parameters): Keep trying to get this right. --- diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index a1f6e4f971e..0c518ef3155 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,6 +1,6 @@ -Thu Apr 22 16:37:33 1993 K. Richard Pixley (rich@rtl.cygnus.com) +Fri Apr 23 07:30:01 1993 Jim Kingdon (kingdon@cygnus.com) - * gdbint.texinfo: document FRAME_SAVED_PC and FRAME_CHAIN. + * stabs.texinfo (Parameters): Keep trying to get this right. Wed Apr 21 15:18:47 1993 Jim Kingdon (kingdon@cygnus.com) diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo index 56af513a745..93cd4c4f8d2 100644 --- a/gdb/doc/stabs.texinfo +++ b/gdb/doc/stabs.texinfo @@ -1006,6 +1006,10 @@ same thing, the difference is that @samp{P} is a GNU invention and handle either one. Symbol type @samp{C_RPSYM} is used with @samp{R} and @samp{N_RSYM} is used with @samp{P}. +There is at least one case where GCC uses a @samp{p}/@samp{r} pair +rather than @samp{P}; this is where the argument is passed in the +argument list and then loaded into a register. + There is another case similar to an argument in a register, which is an argument which is actually stored as a local variable. Sometimes this happens when the argument was passed in a register and then the compiler @@ -1023,6 +1027,23 @@ symbol is an offset relative to the local variables for that function, not relative to the arguments (on some machines those are the same thing, but not on all). +The following are said to go with N_PSYM: + +@example +"name" -> "param_name:#type" + # -> p (value parameter) + -> i (value parameter by reference, indirect access) + -> v (variable parameter by reference) + -> C (read-only parameter, conformant array bound) + -> x (conformant array value parameter) + -> pP (<>) + -> pF (<>) + -> X (function result variable) + -> b (based variable) + +value -> offset from the argument pointer (positive). +@end example + As a simple example, the code @example @@ -1041,8 +1062,8 @@ produces the stabs @end example The type definition of argv is interesting because it contains several -type definitions. Type 21 is ptr to type 2 (char) and argv (type 20) is -ptr to type 21. +type definitions. Type 21 is pointer to type 2 (char) and argv (type 20) is +pointer to type 21. @node Aggregate Types @chapter Aggregate Types @@ -2869,29 +2890,7 @@ of the compilation. @node N_PSYM @section 160 - 0xa0 - N_PSYM -Parameter variable - -@display -stabs. "name", N_PSYM, NIL, NIL, value -@end display - -@example -"name" -> "param_name:#type" - # -> p (value parameter) - -> i (value parameter by reference, indirect access) - -> v (variable parameter by reference) - -> C (read-only parameter, conformant array bound) - -> x (conformant array value parameter) - -> pP (<>) - -> pF (<>) - -> X (function result variable) - -> b (based variable) - -value -> offset from the argument pointer (positive). -@end example - -On most machines the argument pointer is the same as the frame -pointer. +Parameter variable. @xref{Parameters}. @node N_EINCL @section 162 - 0xa2 - N_EINCL