8.2 Defining a Symbol Within Another Type
In C++, a symbol (such as a type name) can be defined within another type.
In stabs, this is sometimes represented by making the name of a symbol which contains ::. Such a pair of colons does not end the name of the symbol, the way a single colon would (see String Field). I'm not sure how consistently used or well thought out this mechanism is. So that a pair of colons in this position always has this meaning, : cannot be used as a symbol descriptor.
For example, if the string for a stab is foo::bar::baz:t5=*6,
foo::bar::baz is the name of the symbol, t is the
symbol descriptor, and 5=*6 is the type information.