In C++, a class name which is declared with class
, struct
,
or union
, is not only a tag, as in C, but also a type name. Thus
there should be stabs with both t
and T
symbol descriptors
(see Typedefs).
To save space, there is a special abbreviation for this case. If the
T
symbol descriptor is followed by t
, then the stab
defines both a type name and a tag.
For example, the C++ code
struct foo {int x;};
can be represented as either
.stabs "foo:T19=s4x:1,0,32;;",128,0,0,0 # 128 is N_LSYM .stabs "foo:t19",128,0,0,0
or
.stabs "foo:Tt19=s4x:1,0,32;;",128,0,0,0