* stabs.texinfo (Parameters): Keep trying to get this right.

This commit is contained in:
Jim Kingdon
1993-04-23 14:51:03 +00:00
parent 7586127f7e
commit a2a2eac845
2 changed files with 26 additions and 27 deletions

View File

@ -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)

View File

@ -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