[gdb/DWARF] Introduce linked list for dynamic attributes
authorKeven Boell <keven.boell@linux.intel.com>
Fri, 20 Mar 2015 21:45:20 +0000 (17:45 -0400)
committerJoel Brobecker <brobecker@adacore.com>
Fri, 20 Mar 2015 21:52:03 +0000 (17:52 -0400)
commitd9823cbb391e015f79687f4d17d7f9a32d27b5eb
treeb54acb333256046c9cf62f69b5c74db80b8bd081
parent2e7bf1d7210ee79b93ba9ce4462e22e71097a102
[gdb/DWARF] Introduce linked list for dynamic attributes

This patch introduces a linked list for dynamic attributes of a type.
This is a pre-work for the Fortran dynamic array support. The Fortran
dynamic array support will add more dynamic attributes to a type.
As only a few types will have such dynamic attributes set, a linked
list is more efficient in terms of memory consumption than adding
multiple attributes to main_type.

gdb/ChangeLog:

        * gdbtypes.c (resolve_dynamic_type_internal): Adapt
        data_location usage to linked list.
        (resolve_dynamic_type_internal): Adapt data_location to
        linked list.
        (get_dyn_prop, add_dyn_prop, copy_dynamic_prop_list): New function.
        (copy_type_recursive, copy_type): Add copy of linked list.
        * gdbtypes.h (enum dynamic_prop_node_kind): New enum.
        (struct dynamic_prop_list): New struct.
        * dwarf2read.c (set_die_type): Set data_location data.
gdb/ChangeLog
gdb/dwarf2read.c
gdb/gdbtypes.c
gdb/gdbtypes.h