STABS: Class Names

Next: Nested Symbols, Up: Cplusplus [Contents][Index]

### 8.1 C`++` Class Names

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