Remove empty frame and full evaluators
authorZoran Zaric <zoran.zaric@amd.com>
Tue, 15 Sep 2020 11:24:11 +0000 (12:24 +0100)
committerZoran Zaric <zoran.zaric@amd.com>
Thu, 5 Aug 2021 15:40:17 +0000 (16:40 +0100)
commit14a62404c9845827d92986af2dfcdbb7e48c65fc
treeb533e9602db2f6a0b86d895d1a7db434e0e1281d
parent9e739f693f142ac634d9d127bd9951d0c62593c1
Remove empty frame and full evaluators

There are no virtual methods that require different specialization in
dwarf_expr_context class. This means that derived classes
dwarf_expr_executor and dwarf_evaluate_loc_desc are not needed any
more.

As a result of this, the  evaluate_for_locexpr_baton class base class
is now the dwarf_expr_context class.

There might be a need for a better class hierarchy when we know more
about the direction of the future DWARF versions and gdb extensions,
but that is out of the scope of this patch series.

gdb/ChangeLog:

* dwarf2/frame.c (class dwarf_expr_executor): Remove class.
(execute_stack_op): Instantiate dwarf_expr_context instead of
dwarf_evaluate_loc_desc class.
* dwarf2/loc.c (class dwarf_evaluate_loc_desc): Remove class.
(dwarf2_evaluate_loc_desc_full): Instantiate dwarf_expr_context
instead of dwarf_evaluate_loc_desc class.
(struct evaluate_for_locexpr_baton): Derive from
dwarf_expr_context.
gdb/dwarf2/frame.c
gdb/dwarf2/loc.c