Move vptr_{fieldno,basetype} out of main_type, and update everything accordingly.
authorDoug Evans <xdje42@gmail.com>
Sun, 1 Feb 2015 05:40:57 +0000 (21:40 -0800)
committerDoug Evans <xdje42@gmail.com>
Sun, 1 Feb 2015 05:40:57 +0000 (21:40 -0800)
commitae6ae97502b183d0cdb9c298a60fa05240f230bf
tree21c2fcba0eba7afd4d1ac80e98ec2dd21698fcd1
parent09e2d7c72040dd2d1833c140b5f04a85bc3f6a0f
Move vptr_{fieldno,basetype} out of main_type, and update everything accordingly.

Every type has to pay the price in memory usage for their presence.
The proper place for them is in the type_specific field which exists
for this purpose.

gdb/ChangeLog:

* dwarf2read.c (process_structure_scope): Update setting of
TYPE_VPTR_BASETYPE, TYPE_VPTR_FIELDNO.
* gdbtypes.c (internal_type_vptr_fieldno): New function.
(set_type_vptr_fieldno): New function.
(internal_type_vptr_basetype): New function.
(set_type_vptr_basetype): New function.
(get_vptr_fieldno): Update setting of TYPE_VPTR_FIELDNO,
TYPE_VPTR_BASETYPE.
(allocate_cplus_struct_type): Initialize vptr_fieldno.
(recursive_dump_type): Printing of vptr_fieldno, vptr_basetype ...
(print_cplus_stuff): ... moved here.
(copy_type_recursive): Don't copy TYPE_VPTR_BASETYPE.
* gdbtypes.h (struct main_type): Members vptr_fieldno, vptr_basetype
moved to ...
(struct cplus_struct_type): ... here.  All uses updated.
(TYPE_VPTR_FIELDNO, TYPE_VPTR_BASETYPE): Rewrite.
(internal_type_vptr_fieldno, set_type_vptr_fieldno): Declare.
(internal_type_vptr_basetype, set_type_vptr_basetype): Declare.
* stabsread.c (read_tilde_fields): Update setting of
TYPE_VPTR_FIELDNO, TYPE_VPTR_BASETYPE.

gdb/testsuite/ChangeLog:

* gdb.base/maint.exp <maint print type argc>: Update expected output.
gdb/ChangeLog
gdb/dwarf2read.c
gdb/eval.c
gdb/gdb-gdb.py
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/stabsread.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/maint.exp