Make tdesc_arch_data::arch_regs an std::vector
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 5 Dec 2017 21:30:27 +0000 (16:30 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Tue, 5 Dec 2017 21:30:27 +0000 (16:30 -0500)
commitf0cddbef410cb626ea87b3a954bd4e3d7526115e
tree3dc66856aabee85a9ada32465fc0eb0e4928090b
parentd05200d155f065b93e2dc353a7d33408c7574e9c
Make tdesc_arch_data::arch_regs an std::vector

Make tdesc_arch_data::arch_regs be an std::vector of tdesc_arch_reg
objects.

On particularity is that the tdesc_arch_data linked to a gdbarch is
allocated on the gdbarch's obstack.  To be safe, I did not change it and
called placement-new on the area returned by OBSTACK_ZALLOC.

gdb/ChangeLog:

* target-descriptions.c (tdesc_arch_reg): Remove typedef.
(struct tdesc_arch_reg): Add constructor.
(DEF_VEC_O (tdesc_arch_reg)): Remove.
(struct tdesc_arch_data): Initialize fields.
<arch_regs>: Change type to std::vector.
(target_find_description): Adjust.
(tdesc_find_type): Adjust.
(tdesc_data_init): Call tdesc_arch_data constructor.
(tdesc_data_alloc): Allocate tdesc_arch_data with new.
(tdesc_data_cleanup): Free data with delete.
(tdesc_numbered_register): Adjust.
(tdesc_find_arch_register): Adjust.
(tdesc_use_registers): Adjust.
gdb/ChangeLog
gdb/target-descriptions.c