summaryrefslogtreecommitdiffstats
path: root/gdb/doc
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-04-23 16:27:10 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-04-23 16:27:10 +0000
commitc156f3c1c9395bcb721678e07a5cf10b7c0d7b18 (patch)
treefae07b937be8d29d44541c9024412533b28f1edd /gdb/doc
parent9c5c272236db18df5eb80c509d9e4543013a1c87 (diff)
downloadppe42-binutils-c156f3c1c9395bcb721678e07a5cf10b7c0d7b18.tar.gz
ppe42-binutils-c156f3c1c9395bcb721678e07a5cf10b7c0d7b18.zip
more on Parameters
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/stabs.texinfo11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo
index 5876aec1f9..6b57c2913a 100644
--- a/gdb/doc/stabs.texinfo
+++ b/gdb/doc/stabs.texinfo
@@ -1010,6 +1010,17 @@ 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.
+On the sparc and hppa, for a @samp{P} symbol whose type is a structure
+or union, the register contains the address of the structure. On the
+sparc, this is also true of a @samp{p}/@samp{r} pair (using Sun cc) or a
+@samp{p} symbol. However, if a (small) structure is really in a
+register, @samp{r} is used. And, to top it all off, on the hppa it
+might be a structure which was passed on the stack and loaded into a
+register and for which there is a @samp{p}/@samp{r} pair! I believe
+that symbol descriptor @samp{i} is supposed to deal with this case, but
+I don't know details or what compilers or debuggers use it, if any (not
+GDB or GCC).
+
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
OpenPOWER on IntegriCloud