Introduce var_msym_value_operation

This adds class var_msym_value_operation, which implements
OP_VAR_MSYM_VALUE.  A new method is added to class operation in order
to support a special case in minsym evaluation.

gdb/ChangeLog
2021-03-08  Tom Tromey  <tom@tromey.com>

	* expression.h (class operation) <set_outermost>: New method.
	* expop.h (class var_msym_value_operation): New.
	* eval.c (eval_op_var_msym_value): No longer static.
	(var_msym_value_operation::evaluate_for_address)
	(var_msym_value_operation::evaluate_for_sizeof)
	(var_msym_value_operation::evaluate_for_cast): New methods.
	* ax-gdb.c (var_msym_value_operation::do_generate_ax): New
	method.
This commit is contained in:
Tom Tromey 2021-03-08 07:27:57 -07:00
parent d336c29e3f
commit 0c8effa32e
5 changed files with 152 additions and 1 deletions

View file

@ -165,6 +165,10 @@ public:
/* Print this operation to STREAM. */
virtual void dump (struct ui_file *stream, int depth) const = 0;
/* Call to indicate that this is the outermost operation in the
expression. This should almost never be overridden. */
virtual void set_outermost () { }
protected:
/* Called by generate_ax to do the work for this particular