Next: , Previous: , Up: Defining Types   [Contents][Index]


5.9 Giving a Type a Name

To give a type a name, use the ‘t’ symbol descriptor. The type is specified by the type information (see The String Field) for the stab. For example,

.stabs "s_typedef:t16",128,0,0,0     # 128 is N_LSYM

specifies that s_typedef refers to type number 16. Such stabs have symbol type N_LSYM (or C_DECL for XCOFF). (The Sun documentation mentions using N_GSYM in some cases).

If you are specifying the tag name for a structure, union, or enumeration, use the ‘T’ symbol descriptor instead. I believe C is the only language with this feature.

If the type is an opaque type (I believe this is a Modula-2 feature), AIX provides a type descriptor to specify it. The type descriptor is ‘o’ and is followed by a name. I don’t know what the name means—is it always the same as the name of the type, or is this type descriptor used with a nameless stab (see The String Field)? There optionally follows a comma followed by type information which defines the type of this type. If omitted, a semicolon is used in place of the comma and the type information, and the type is much like a generic pointer type—it has a known size but little else about it is specified.