aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc/stabs.texinfo
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1994-02-03 16:44:13 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1994-02-03 16:44:13 +0000
commitcf7416ec3f777730180ccf4f4c02c4a8301ab79f (patch)
treeb81a2c8042af3a68a57867cde0905d9c170ff859 /gdb/doc/stabs.texinfo
parent6f9dff07e17b829b8becf9fcb9b34b4711f4ceb1 (diff)
downloadgdb-cf7416ec3f777730180ccf4f4c02c4a8301ab79f.zip
gdb-cf7416ec3f777730180ccf4f4c02c4a8301ab79f.tar.gz
gdb-cf7416ec3f777730180ccf4f4c02c4a8301ab79f.tar.bz2
* stabs.texinfo (Enumerations): Document restriction on where
enumeration types can appear and still win with GDB.
Diffstat (limited to 'gdb/doc/stabs.texinfo')
-rw-r--r--gdb/doc/stabs.texinfo12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo
index 85c2d4e..b9cd83e 100644
--- a/gdb/doc/stabs.texinfo
+++ b/gdb/doc/stabs.texinfo
@@ -1892,6 +1892,18 @@ is determined by the architecture (normally all enumerations types are
32 bits). Type attributes can be used to specify an enumeration type of
another size for debuggers which support them; see @ref{String Field}.
+Enumeration types are unusual in that they define symbols for the
+enumeration values (@code{first}, @code{second}, and @code{third} in the
+above example), and even though these symbols are visible in the file as
+a whole (rather than being in a more local namespace like structure
+member names), they are defined in the type definition for the
+enumeration type rather than each having their own symbol. In order to
+be fast, GDB will only get symbols from such types (in its initial scan
+of the stabs) if the type is the first thing defined after a @samp{T} or
+@samp{t} symbol descriptor (the above example fulfills this
+requirement). If the type does not have a name, the compiler should
+emit it in a nameless stab (@pxref{String Field}); GCC does this.
+
@node Structures
@section Structures