* stabs.texinfo (Method Type Descriptor): Expand and correct.

This commit is contained in:
Ian Lance Taylor 1998-07-24 21:52:03 +00:00
parent 8d6476c711
commit 96909b926c
2 changed files with 21 additions and 12 deletions

View File

@ -1,3 +1,7 @@
Fri Jul 24 17:51:38 1998 Ian Lance Taylor <ian@cygnus.com>
* stabs.texinfo (Method Type Descriptor): Expand and correct.
Mon May 4 10:37:12 1998 Brian Youmans (3diff@gnu.org)
* refcard.tex: Copyright, address updates.

View File

@ -14,7 +14,7 @@ END-INFO-DIR-ENTRY
@ifinfo
This document describes the stabs debugging symbol tables.
Copyright 1992, 93, 94, 95, 1997 Free Software Foundation, Inc.
Copyright 1992, 93, 94, 95, 97, 1998 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by Julia Menapace, Jim Kingdon,
and David MacKenzie.
@ -52,7 +52,7 @@ regarded as a program in the language TeX).
@end tex
@vskip 0pt plus 1filll
Copyright @copyright{} 1992, 93, 94, 95, 1997 Free Software Foundation, Inc.
Copyright @copyright{} 1992, 93, 94, 95, 97, 1998 Free Software Foundation, Inc.
Contributed by Cygnus Support.
Permission is granted to make and distribute verbatim copies of
@ -2690,16 +2690,21 @@ pointer.
@node Method Type Descriptor
@section The @samp{#} Type Descriptor
This is like the @samp{f} type descriptor for functions (@pxref{Function
Types}), except that a function which uses the @samp{#} type descriptor
takes an extra argument as its first argument, for the @code{this}
pointer. The @samp{#} type descriptor is optionally followed by the
types of the arguments, then another @samp{#}. If the types of the
arguments are omitted, so that the second @samp{#} immediately follows
the @samp{#} which is the type descriptor, the arguments are being
omitted (to save space) and can be deduced from the mangled name of the
method. After the second @samp{#} there is type information for the
return type of the method and a semicolon.
This is used to describe a class method. This is a function which takes
an extra argument as its first argument, for the @code{this} pointer.
If the @samp{#} is immediately followed by another @samp{#}, the second
one will be followed by the return type and a semicolon. The class and
argument types are not specified, and must be determined by demangling
the name of the method if it is available.
Otherwise, the single @samp{#} is followed by the class type, a comma,
the return type, a comma, and zero or more parameter types separated by
commas. The list of arguments is terminated by a semicolon. In the
debugging output generated by gcc, a final argument type of @code{void}
indicates a method which does not take a variable number of arguments.
If the final argument type of @code{void} does not appear, the method
was declared with an ellipsis.
Note that although such a type will normally be used to describe fields
in structures, unions, or classes, for at least some versions of the