GNU Info

Info Node: (stabs.info)Basic Cplusplus Types

(stabs.info)Basic Cplusplus Types


Next: Simple Classes Prev: Nested Symbols Up: Cplusplus
Enter node , (file) or (file)node

Basic Types For C++
===================

   << the examples that follow are based on a01.C >>

   C++ adds two more builtin types to the set defined for C.  These are
the unknown type and the vtable record type.  The unknown type, type
16, is defined in terms of itself like the void type.

   The vtable record type, type 17, is defined as a structure type and
then as a structure tag.  The structure has four fields: delta, index,
pfn, and delta2.  pfn is the function pointer.

   << In boilerplate $vtbl_ptr_type, what are the fields delta, index,
and delta2 used for? >>

   This basic type is present in all C++ programs even if there are no
virtual methods defined.

     .stabs "struct_name:sym_desc(type)type_def(17)=type_desc(struct)struct_bytes(8)
             elem_name(delta):type_ref(short int),bit_offset(0),field_bits(16);
             elem_name(index):type_ref(short int),bit_offset(16),field_bits(16);
             elem_name(pfn):type_def(18)=type_desc(ptr to)type_ref(void),
                                         bit_offset(32),field_bits(32);
             elem_name(delta2):type_def(short int);bit_offset(32),field_bits(16);;"
             N_LSYM, NIL, NIL

     .stabs "$vtbl_ptr_type:t17=s8
             delta:6,0,16;index:6,16,16;pfn:18=*15,32,32;delta2:6,32,16;;"
             ,128,0,0,0

     .stabs "name:sym_dec(struct tag)type_ref($vtbl_ptr_type)",N_LSYM,NIL,NIL,NIL

     .stabs "$vtbl_ptr_type:T17",128,0,0,0


automatically generated by info2www version 1.2.2.9