From 9e5e03df52968b416e09a59482409abfed9727c0 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 15 Apr 2021 10:05:00 -0600 Subject: Use block_symbol in var_value_operation I noticed that var_value_operation takes a block and a symbol, and most callers destructure a block_symbol to pass in. It seems better for this class to simply hold a block_symbol instead. Tested on x86-64 Fedora 32. gdb/ChangeLog 2021-04-15 Tom Tromey * rust-exp.y (rust_parser::convert_ast_to_expression): Update. * parse.c (parser_state::push_symbol, parser_state::push_dollar): Update. * p-exp.y (variable): Update. * m2-exp.y (variable): Update. * go-exp.y (variable): Update. * expprint.c (dump_for_expression): New overload. * expop.h (check_objfile): New overload. (check_constant): New overload. (class var_value_operation): Use block_symbol. : Rewrite. * eval.c (var_value_operation::evaluate) (var_value_operation::evaluate_funcall) (var_value_operation::evaluate_for_address) (var_value_operation::evaluate_for_address) (var_value_operation::evaluate_with_coercion) (var_value_operation::evaluate_for_sizeof) (var_value_operation::evaluate_for_cast): Update. * d-exp.y (PrimaryExpression): Update. * c-exp.y (variable): Update. * ax-gdb.c (var_value_operation::do_generate_ax): Update. * ada-lang.c (ada_var_value_operation::evaluate_for_cast) (ada_var_value_operation::evaluate) (ada_var_value_operation::resolve) (ada_funcall_operation::resolve): Update. * ada-exp.y (write_var_from_sym, write_object_renaming) (write_ambiguous_var, write_var_or_type, write_name_assoc) (maybe_overload): Update. * ada-exp.h (class ada_var_value_operation) : Rewrite. --- gdb/expprint.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gdb/expprint.c') diff --git a/gdb/expprint.c b/gdb/expprint.c index e228beb..0c21ce9 100644 --- a/gdb/expprint.c +++ b/gdb/expprint.c @@ -125,6 +125,15 @@ dump_for_expression (struct ui_file *stream, int depth, const block *bl) void dump_for_expression (struct ui_file *stream, int depth, + const block_symbol &sym) +{ + fprintf_filtered (stream, _("%*sBlock symbol:\n"), depth, ""); + dump_for_expression (stream, depth + 1, sym.symbol); + dump_for_expression (stream, depth + 1, sym.block); +} + +void +dump_for_expression (struct ui_file *stream, int depth, type_instance_flags flags) { fprintf_filtered (stream, _("%*sType flags: "), depth, ""); -- cgit v1.1