Remove get_frame_cfa from dwarf_expr_context

Following the idea of merging the evaluators, the get_frame_cfa method
can be moved from dwarf_expr_executor and dwarf_evaluate_loc_desc
classes to their base class dwarf_expr_context. Once this is done,
it becomes apparent that the method is only called once and it can be
inlined.

It is also necessary to check if the frame context information was
provided before the DW_OP_call_frame_cfa operation is executed.

gdb/ChangeLog:

	* dwarf2/expr.c (dwarf_expr_context::get_frame_cfa): Remove
	method.
	(dwarf_expr_context::execute_stack_op): Call frame context info
	check for DW_OP_call_frame_cfa. Remove use of get_frame_cfa.
	* dwarf2/expr.h (dwarf_expr_context::get_frame_cfa): Remove
	method.
	* dwarf2/frame.c (dwarf_expr_context::get_frame_cfa): Remove
	method.
	* dwarf2/loc.c (dwarf_expr_context::get_frame_cfa): Remove
	method.
This commit is contained in:
Zoran Zaric
2020-10-09 11:22:23 +01:00
committed by Zoran Zaric
parent 62e37eac1c
commit 6c7779b34b
4 changed files with 4 additions and 17 deletions

View File

@ -249,11 +249,6 @@ public:
invalid ("DW_OP_push_object_address");
}
CORE_ADDR get_frame_cfa () override
{
invalid ("DW_OP_call_frame_cfa");
}
CORE_ADDR get_tls_address (CORE_ADDR offset) override
{
invalid ("DW_OP_form_tls_address");