+2021-03-10 Tom Tromey <tromey@adacore.com>
+
+ * parser-defs.h (parser_state): Change completion to bool.
+ <parse_completion>: Likewise.
+ * ada-lang.h (ada_find_operator_symbol, ada_resolve_funcall)
+ (ada_resolve_variable, ada_resolve_function): Update.
+ * ada-lang.c (ada_find_operator_symbol): Change
+ parse_completion to bool.
+ (ada_resolve_funcall, ada_resolve_variable)
+ (ada_resolve_function): Likewise.
+
+2021-03-09 Tom Tromey <tromey@adacore.com>
+
+ * eval.c (operation::evaluate_funcall): Use function formal
+ parameter types when evaluating.
+
+2021-03-09 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb-gdb.py.in (StructMainTypePrettyPrinter) <owner_to_string>:
+ Updated fields names flag_objfile_owned to m_flag_objfile_owned,
+ and owner to m_owner.
+
+2021-03-09 Felix Willgerodt <felix.willgerodt@intel.com>
+
+ * f-exp.h (eval_op_f_loc): Declare.
+ (expr::fortran_loc_operation): New typedef.
+ * f-exp.y (exp): Handle UNOP_FORTRAN_LOC after parsing an
+ UNOP_INTRINSIC.
+ (f77_keywords): Add LOC keyword.
+ * f-lang.c (eval_op_f_loc): New function.
+ * std-operator.def (UNOP_FORTRAN_LOC): New operator.
+
+2021-03-09 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * f-exp.h (eval_op_f_array_shape): Declare.
+ (fortran_array_shape_operation): New type.
+ * f-exp.y (exp): Handle UNOP_FORTRAN_SHAPE after parsing
+ UNOP_INTRINSIC.
+ (f77_keywords): Add "shape" keyword.
+ * f-lang.c (fortran_array_shape): New function.
+ (eval_op_f_array_shape): New function.
+ * std-operator.def (UNOP_FORTRAN_SHAPE): New operator.
+
+2021-03-09 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * f-exp.y (eval_op_f_array_size): Declare 1 and 2 argument forms
+ of this function.
+ (expr::fortran_array_size_1arg): New type.
+ (expr::fortran_array_size_2arg): Likewise.
+ * f-exp.y (exp): Handle FORTRAN_ARRAY_SIZE after parsing
+ UNOP_OR_BINOP_INTRINSIC.
+ (f77_keywords): Add "size" keyword.
+ * f-lang.c (fortran_array_size): New function.
+ (eval_op_f_array_size): New function, has a 1 arg and 2 arg form.
+ * std-operator.def (FORTRAN_ARRAY_SIZE): New operator.
+
+2021-03-09 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * f-exp.h (eval_op_f_rank): Declare.
+ (expr::fortran_rank_operation): New typedef.
+ * f-exp.y (exp): Handle UNOP_FORTRAN_RANK after parsing an
+ UNOP_INTRINSIC.
+ (f77_keywords): Add "rank" keyword.
+ * f-lang.c (eval_op_f_rank): New function.
+ * std-operator.def (UNOP_FORTRAN_RANK): New operator.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * printcmd.c (set_command): Remove null check.
+ * value.c (init_if_undefined_command): Remove null check.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parse.c (parser_state::push_symbol, parser_state::push_dollar):
+ Update.
+ * p-exp.y (variable): Update.
+ * go-exp.y (variable): Update.
+ * expprint.c (dump_for_expression): Use bound_minimal_symbol.
+ Remove overload for objfile.
+ * expop.h (eval_op_var_msym_value): Use bound_minimal_symbol
+ parameter.
+ (check_objfile): Likewise.
+ (dump_for_expression): Likewise. Remove overload for objfile.
+ (class var_msym_value_operation): Use bound_minimal_symbol.
+ * eval.c (eval_op_var_msym_value): Use bound_minimal_symbol
+ parameter.
+ (var_msym_value_operation::evaluate_for_address)
+ (var_msym_value_operation::evaluate_for_sizeof)
+ (var_msym_value_operation::evaluate_for_cast): Update.
+ * d-exp.y (PrimaryExpression): Update.
+ * c-exp.y (variable): Update.
+ * ax-gdb.c (var_msym_value_operation::do_generate_ax): Update.
+ * ada-lang.c (ada_var_msym_value_operation::evaluate_for_cast):
+ Update.
+ * ada-exp.y (write_var_or_type): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parser-defs.h (exp_uses_objfile): Return bool.
+ * parse.c (exp_uses_objfile): Return bool.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * value.h (eval_skip_value): Don't declare.
+ * opencl-lang.c (eval_opencl_assign): Update.
+ * m2-lang.c (eval_op_m2_high, eval_op_m2_subscript): Update.
+ * f-lang.c (eval_op_f_abs, eval_op_f_mod, eval_op_f_ceil)
+ (eval_op_f_floor, eval_op_f_modulo, eval_op_f_cmplx): Remove.
+ * expression.h (enum noside) <EVAL_SKIP>: Remove.
+ * expop.h (typeof_operation::evaluate)
+ (decltype_operation::evaluate, unop_addr_operation::evaluate)
+ (unop_sizeof_operation::evaluate, assign_operation::evaluate)
+ (cxx_cast_operation::evaluate): Update.
+ * eval.c (eval_skip_value): Remove.
+ (eval_op_scope, eval_op_var_entry_value)
+ (eval_op_func_static_var, eval_op_string, eval_op_objc_selector)
+ (eval_op_concat, eval_op_ternop, eval_op_structop_struct)
+ (eval_op_structop_ptr, eval_op_member, eval_op_add, eval_op_sub)
+ (eval_op_binary, eval_op_subscript, eval_op_equal)
+ (eval_op_notequal, eval_op_less, eval_op_gtr, eval_op_geq)
+ (eval_op_leq, eval_op_repeat, eval_op_plus, eval_op_neg)
+ (eval_op_complement, eval_op_lognot, eval_op_ind)
+ (eval_op_memval, eval_op_preinc, eval_op_predec)
+ (eval_op_postinc, eval_op_postdec, eval_op_type)
+ (eval_binop_assign_modify, eval_op_objc_msgcall)
+ (eval_multi_subscript, logical_and_operation::evaluate)
+ (logical_or_operation::evaluate, array_operation::evaluate)
+ (operation::evaluate_for_cast)
+ (var_msym_value_operation::evaluate_for_cast)
+ (var_value_operation::evaluate_for_cast): Update.
+ * c-lang.c (c_string_operation::evaluate): Update.
+ * c-exp.h (objc_nsstring_operation::evaluate)
+ (objc_selector_operation::evaluate): Update.
+ * ada-lang.c (ada_assign_operation::evaluate)
+ (eval_ternop_in_range, ada_unop_neg, ada_unop_in_range)
+ (ada_atr_size): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * eval.c: Merge "namespace" scopes.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parser-defs.h (struct expr_builder) <expr_builder>: Inline.
+ <release>: Inline.
+ * parse.c (expr_builder::expr_builder, expr_builder::release):
+ Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parse.c (expression::expression, expression::~expression):
+ Remove.
+ * expression.h (struct expression): Inline constructor. Remove
+ destructor.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * std-operator.def (BINOP_END): Remove.
+ * p-exp.y (tokentab3, tokentab2): Use OP_NULL, not BINOP_END.
+ * go-exp.y (tokentab2): Use OP_NULL, not BINOP_END.
+ * f-exp.y (dot_ops, f77_keywords): Use OP_NULL, not BINOP_END.
+ * d-exp.y (tokentab2, ident_tokens): Use OP_NULL, not BINOP_END.
+ * c-exp.y (tokentab3, tokentab2, ident_tokens): Use OP_NULL, not
+ BINOP_END.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expression.h (enum exp_opcode) <OP_UNUSED_LAST>: Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * std-operator.def (OP_EXTENDED0): Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * std-operator.def (OP_NAME, OP_ATR_IMAGE, OP_ATR_MODULUS)
+ (OP_OTHERS, OP_CHOICES, OP_POSITIONAL, OP_DISCRETE_RANGE):
+ Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * std-operator.def (UNOP_CAP, UNOP_CHR, UNOP_ORD, UNOP_FLOAT)
+ (UNOP_MAX, UNOP_MIN, UNOP_ODD, UNOP_TRUNC, OP_M2_STRING): Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * std-operator.def (OP_ATR_MIN, OP_ATR_MAX): Remove.
+ * ada-lang.c (ada_binop_minmax): Update.
+ * ada-exp.h (ada_binop_min_operation, ada_binop_max_operation):
+ Use BINOP_MIN and BINOP_MAX.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * value.h (evaluate_subexp_with_coercion): Don't declare.
+ * parse.c (exp_descriptor_standard): Remove.
+ (expr_builder::expr_builder, expr_builder::release): Update.
+ (expression::expression): Remove size_t parameter.
+ (expression::~expression): Simplify.
+ (expression::resize): Remove.
+ (write_exp_elt, write_exp_elt_opcode, write_exp_elt_sym)
+ (write_exp_elt_msym, write_exp_elt_block, write_exp_elt_objfile)
+ (write_exp_elt_longcst, write_exp_elt_floatcst)
+ (write_exp_elt_type, write_exp_elt_intern, write_exp_string)
+ (write_exp_string_vector, write_exp_bitstring): Remove.
+ * p-lang.h (class pascal_language) <opcode_print_table,
+ op_print_tab>: Remove.
+ * p-lang.c (pascal_language::op_print_tab): Remove.
+ * opencl-lang.c (class opencl_language) <opcode_print_table>:
+ Remove.
+ * objc-lang.c (objc_op_print_tab): Remove.
+ (class objc_language) <opcode_print_table>: Remove.
+ * m2-lang.h (class m2_language) <opcode_print_table,
+ op_print_tab>: Remove.
+ * m2-lang.c (m2_language::op_print_tab): Remove.
+ * language.h (struct language_defn) <post_parser, expression_ops,
+ opcode_print_table>: Remove.
+ * language.c (language_defn::expression_ops)
+ (auto_or_unknown_language::opcode_print_table): Remove.
+ * go-lang.h (class go_language) <opcode_print_table,
+ op_print_tab>: Remove.
+ * go-lang.c (go_language::op_print_tab): Remove.
+ * f-lang.h (class f_language) <opcode_print_table>: Remove
+ <op_print_tab>: Remove.
+ * f-lang.c (f_language::op_print_tab): Remove.
+ * expression.h (union exp_element): Remove.
+ (struct expression): Remove size_t parameter from constructor.
+ <resize>: Remove.
+ <first_opcode>: Update.
+ <nelts, elts>: Remove.
+ (EXP_ELEM_TO_BYTES, BYTES_TO_EXP_ELEM): Remove.
+ (evaluate_subexp_standard, print_expression, op_string)
+ (dump_raw_expression): Don't declare.
+ * expprint.c (print_expression, print_subexp)
+ (print_subexp_funcall, print_subexp_standard, op_string)
+ (dump_raw_expression, dump_subexp, dump_subexp_body)
+ (dump_subexp_body_funcall, dump_subexp_body_standard): Remove.
+ (dump_prefix_expression): Update.
+ * eval.c (evaluate_subexp): Remove.
+ (evaluate_expression, evaluate_type): Update.
+ (evaluate_subexpression_type): Remove.
+ (fetch_subexp_value): Remove "pc" parameter. Update.
+ (extract_field_op, evaluate_struct_tuple, evaluate_funcall)
+ (evaluate_subexp_standard, evaluate_subexp_for_address)
+ (evaluate_subexp_with_coercion, evaluate_subexp_for_sizeof)
+ (evaluate_subexp_for_cast): Remove.
+ (parse_and_eval_type): Update.
+ * dtrace-probe.c (dtrace_probe::compile_to_ax): Update.
+ * d-lang.c (d_op_print_tab): Remove.
+ (class d_language) <opcode_print_table>: Remove.
+ * c-lang.h (c_op_print_tab): Don't declare.
+ * c-lang.c (c_op_print_tab): Remove.
+ (class c_language, class cplus_language, class asm_language, class
+ minimal_language) <opcode_print_table>: Remove.
+ * breakpoint.c (update_watchpoint, watchpoint_check)
+ (watchpoint_exp_is_const, watch_command_1): Update.
+ * ax-gdb.h (union exp_element): Don't declare.
+ * ax-gdb.c (const_var_ref, const_expr, maybe_const_expr)
+ (gen_repeat, gen_sizeof, gen_expr_for_cast, gen_expr)
+ (gen_expr_binop_rest): Remove.
+ (gen_trace_for_expr, gen_eval_for_expr, gen_printf): Update.
+ * ada-lang.c (ada_op_print_tab): Remove.
+ (class ada_language) <post_parser, opcode_print_table>: Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * go-lang.c (go_language::expression_ops): Don't declare.
+ * go-lang.h (class go_language) <expression_ops>: Remove.
+ * opencl-lang.c (evaluate_subexp_opencl, exp_descriptor_opencl):
+ Remove.
+ (class opencl_language) <expression_ops>: Remove.
+ * d-lang.c (class d_language) <expression_ops>: Remove.
+ * c-lang.h (evaluate_subexp_c, exp_descriptor_c): Don't declare.
+ * c-lang.c (evaluate_subexp_c, exp_descriptor_c): Remove.
+ (class c_language, class cplus_language, class asm_language)
+ (class minimal_language) <expression_ops>: Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (resolve_subexp, replace_operator_with_call)
+ (evaluate_subexp_type, assign_aggregate)
+ (aggregate_assign_positional, aggregate_assign_from_choices)
+ (aggregate_assign_others, ada_evaluate_subexp_for_cast)
+ (ada_evaluate_subexp, ADA_OPERATORS, ada_operator_length)
+ (ada_operator_check, ada_forward_operator_length)
+ (ada_dump_subexp_body, ada_print_subexp, ada_exp_descriptor):
+ Remove.
+ (post_parser): Update.
+ (class ada_language) <expresssion_ops>: Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * m2-lang.h (class m2_language) <expresssion_ops,
+ exp_descriptor_modula2>: Remove.
+ * m2-lang.c (evaluate_subexp_modula2)
+ (m2_language::exp_descriptor_modula2): Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * f-lang.h (class f_language) <expresssion_ops>: Remove.
+ <exp_descriptor_tab>: Remove.
+ * f-lang.c (fortran_value_subarray, evaluate_subexp_f)
+ (operator_length_f, print_unop_subexp_f, print_binop_subexp_f)
+ (print_subexp_f, dump_subexp_body_f, operator_check_f)
+ (f_language::exp_descriptor_tab, fortran_prepare_argument):
+ Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.h (class rust_language) <expression_ops,
+ exp_descriptor_tab>: Remove.
+ * rust-lang.c (rust_evaluate_funcall): Remove.
+ (rust_range, rust_subscript, eval_op_rust_complement): Don't use
+ EVAL_SKIP.
+ (rust_evaluate_subexp): Remove.
+ (rust_aggregate_operation::evaluate): Don't use EVAL_SKIP.
+ (rust_operator_length, rust_dump_subexp_body, rust_print_subexp)
+ (rust_operator_check, rust_language::exp_descriptor_tab): Remove.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-exp.y: Create operations.
+ (empty_stoken): Remove.
+ (ada_pop, ada_wrap, ada_addrof, ada_un_wrap2, ada_wrap2)
+ (ada_wrap_op, ada_wrap3, ada_funcall): New functions.
+ (components): New global.
+ (push_component, choice_component, pop_component, pop_components):
+ New functions.
+ (associations): New global
+ (push_association, pop_association, pop_associations): New
+ functions.
+ (ada_parse): Update.
+ (write_var_from_sym, write_int): Create operations.
+ (write_exp_op_with_string): Remove.
+ (write_object_renaming, write_selectors, write_ambiguous_var)
+ (write_var_or_type, write_name_assoc): Create operations.
+ * ada-lang.h (ada_index_type): Declare.
+ * ada-lang.c (ada_index_type): No longer static.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * f-exp.y: Create operations.
+ (f_language::parser): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * m2-exp.y: Create operations.
+ (m2_language::parser): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * p-exp.y: Create operations.
+ (pascal_language::parser): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * d-exp.y: Create operations.
+ (d_parse): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * go-exp.y: Create operations.
+ (go_language::parser): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * objc-lang.c (end_msglist): Create operations.
+ * c-exp.y: Change parser to create operations.
+ (write_destructor_name): Remove.
+ (c_parse): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-exp.y: Create operations.
+ (rust_parser::convert_params_to_expression): Change return type.
+ (binop_maker_ftype): New typedef.
+ (maker_map): New global.
+ (rust_parser::convert_ast_to_expression): Change return type.
+ (rust_language::parser): Update.
+ (_initialize_rust_exp): Initialize maker_map.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * stap-probe.c (binop_maker_ftype): New typedef.
+ (stap_maker_map): New global.
+ (stap_make_binop): New function.
+ (stap_parse_register_operand): Return operation_up.
+ (stap_parse_single_operand, stap_parse_argument_conditionally)
+ (stap_parse_argument_1): Likewise.
+ (stap_parse_argument): Create operations.
+ (stap_probe::parse_arguments): Update.
+ (_initialize_stap_probe): Initialize stap_maker_map.
+ * ppc-linux-tdep.c (ppc_stap_parse_special_token): Change return
+ type.
+ * i386-tdep.h (i386_stap_parse_special_token): Change return
+ type.
+ * i386-tdep.c (i386_stap_parse_special_token_triplet)
+ (i386_stap_parse_special_token_three_arg_disp)
+ (i386_stap_parse_special_token): Change return type.
+ * gdbarch.sh (stap_parse_special_token): Change return type.
+ * gdbarch.c: Rebuild.
+ * gdbarch.h: Rebuild.
+ * arm-linux-tdep.c (arm_stap_parse_special_token): Change return
+ type.
+ * aarch64-linux-tdep.c (aarch64_stap_parse_special_token): Change
+ return type.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * gdbarch.sh (dtrace_parse_probe_argument): Change return type.
+ * gdbarch.h: Rebuild.
+ * gdbarch.c: Rebuild.
+ * dtrace-probe.c (dtrace_probe::build_arg_exprs): Update.
+ * amd64-linux-tdep.c (amd64_dtrace_parse_probe_argument): Change
+ return type.
+ (amd64_dtrace_parse_probe_argument): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parser-defs.h (struct parser_state) <push, push_new,
+ push_c_string, push_symbol, push_dollar, pop, pop_vector, wrap,
+ wrap2>: New methods.
+ <m_operations>: New member.
+ * parse.c (parser_state::push_c_string)
+ (parser_state::push_symbol, parser_state::push_dollar): New
+ methods.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * parser-defs.h (struct expr_completion_state) <expout_last_op>:
+ New member.
+ (struct parser_state) <mark_struct_expression>: New method.
+ * parse.c (parser_state::mark_struct_expression): Update assert.
+ (parser_state::mark_struct_expression): New method.
+ (parser_state::mark_completion_tag): Update assert.
+ (parse_expression_for_completion): Handle expout_last_op.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-exp.h (class ada_var_value_operation) <get_symbol>: Remove;
+ now in superclass.
+ * value.h (fetch_subexp_value): Add "op" parameter.
+ * value.c (init_if_undefined_command): Update.
+ * tracepoint.c (validate_actionline, encode_actions_1): Update.
+ * stap-probe.c (stap_probe::compile_to_ax): Update.
+ * printcmd.c (set_command): Update.
+ * ppc-linux-nat.c (ppc_linux_nat_target::check_condition):
+ Update.
+ * parser-defs.h (struct expr_builder) <set_operation>: New
+ method.
+ * parse.c (parse_exp_in_context, exp_uses_objfile): Update.
+ * expression.h (struct expression) <first_opcode>: Update.
+ <op>: New member.
+ * expprint.c (dump_raw_expression, dump_prefix_expression):
+ Update.
+ * expop.h (class var_value_operation) <get_symbol>: New method.
+ (class register_operation) <get_name>: New method.
+ (class equal_operation): No longer a typedef, now a subclass.
+ (class unop_memval_operation) <get_type>: New method.
+ (class assign_operation) <get_lhs>: New method.
+ (class unop_cast_operation) <get_type>: New method.
+ * eval.c (evaluate_expression, evaluate_type)
+ (evaluate_subexpression_type): Update.
+ (fetch_subexp_value): Add "op" parameter.
+ (parse_and_eval_type): Update.
+ * dtrace-probe.c (dtrace_probe::compile_to_ax): Update.
+ * breakpoint.c (update_watchpoint, watchpoint_check)
+ (watchpoint_exp_is_const, watch_command_1): Update.
+ * ax-gdb.c (gen_trace_for_expr, gen_eval_for_expr, gen_printf):
+ Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_value_binop): Do not use op_string.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expprint.c (dump_for_expression): New overload.
+ * expop.h (check_objfile, dump_for_expression): Declare new
+ overloads.
+ * ada-lang.c (check_objfile): New overload.
+ (assign_component, ada_aggregate_component::uses_objfile)
+ (ada_aggregate_component::dump, ada_aggregate_component::assign)
+ (ada_aggregate_component::assign_aggregate)
+ (ada_positional_component::uses_objfile)
+ (ada_positional_component::dump, ada_positional_component::assign)
+ (ada_discrete_range_association::uses_objfile)
+ (ada_discrete_range_association::dump)
+ (ada_discrete_range_association::assign)
+ (ada_name_association::uses_objfile, ada_name_association::dump)
+ (ada_name_association::assign)
+ (ada_choices_component::uses_objfile, ada_choices_component::dump)
+ (ada_choices_component::assign)
+ (ada_others_component::uses_objfile, ada_others_component::dump)
+ (ada_others_component::assign, ada_assign_operation::evaluate):
+ New methods.
+ * ada-exp.h (ada_string_operation) <get_name>: New method.
+ (class ada_assign_operation): New.
+ (class ada_component): New.
+ (ada_component_up): New typedef.
+ (class ada_aggregate_operation, class ada_aggregate_component)
+ (class ada_positional_component, class ada_others_component)
+ (class ada_association): New.
+ (ada_association_up): New typedef.
+ (class ada_choices_component)
+ (class ada_discrete_range_association)
+ (class ada_name_association): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_var_value_operation::resolve)
+ (ada_funcall_operation::resolve)
+ (ada_ternop_slice_operation::resolve): New methods.
+ * ada-exp.h (struct ada_resolvable): New.
+ (class ada_var_value_operation): Derive from ada_resolvable.
+ <get_block, resolve>: New methods.
+ (class ada_funcall_operation): Derive from ada_resolvable.
+ <resolve>: New method.
+ (class ada_ternop_slice_operation): Derive from ada_resolvable.
+ <resolve>: New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_funcall_operation::evaluate): New method.
+ * ada-exp.h (class ada_var_msym_value_operation) <get_symbol>: New
+ method.
+ (class ada_funcall_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_structop_operation::evaluate): New method.
+ * ada-exp.h (class ada_structop_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_unop_ind_operation::evaluate): New method.
+ * ada-exp.h (class ada_unop_ind_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_exp): No longer static.
+ * ada-exp.h (ada_binop_exp_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_val_atr): No longer static.
+ (ada_atr_val_operation::evaluate): New method.
+ * ada-exp.h (class ada_atr_val_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_pos_atr): No longer static.
+ * ada-exp.h (ada_pos_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_pos_atr): Rename from value_pos_atr. Change
+ parameters.
+ (ada_evaluate_subexp): Use it.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_minmax): No longer static.
+ * ada-exp.h (ada_binop_min_operation, ada_binop_max_operation):
+ New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_var_msym_value_operation::evaluate_for_cast):
+ New method.
+ * ada-exp.h (class ada_var_msym_value_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_var_value_operation::evaluate_for_cast)
+ (ada_var_value_operation::evaluate): New methods.
+ * ada-exp.h (class ada_var_value_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_unop_atr_operation::evaluate): New method.
+ * ada-exp.h (class ada_unop_atr_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_in_bounds): No longer static.
+ * ada-exp.h (class ada_binop_in_bounds_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_ternop_slice): No longer static.
+ * ada-exp.h (class ada_ternop_slice_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-exp.h (ada_bitwise_operation): New template class.
+ (ada_bitwise_and_operation, ada_bitwise_ior_operation)
+ (ada_bitwise_xor_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_equal_binop): No longer static.
+ * ada-exp.h (class ada_binop_equal_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_mult_binop): No longer static.
+ * ada-exp.h (ada_binop_mul_operation ada_binop_div_operation)
+ (ada_binop_rem_operation, ada_binop_mod_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_binop_addsub_operation::evaluate): New method.
+ * ada-exp.h (class ada_binop_addsub_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.h (ada_find_operator_symbol, ada_resolve_funcall)
+ (ada_resolve_variable): Declare.
+ * ada-lang.c (ada_find_operator_symbol, ada_resolve_funcall)
+ (ada_resolve_variable): New functions.
+ (resolve_subexp): Update.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_ternop_cond_operation::evaluate): New
+ method.
+ * c-exp.h (class opencl_ternop_cond_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_logical_binop_operation::evaluate): New
+ method.
+ * c-exp.h (class opencl_logical_binop_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_structop_operation::evaluate): New
+ method.
+ * c-exp.h (class opencl_structop_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_logical_not): No longer static. Change
+ parameters.
+ (evaluate_subexp_opencl): Update.
+ * c-exp.h (opencl_notequal_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_relop, eval_opencl_assign): No longer
+ static. Change parameters.
+ (eval_opencl_assign): No longer static. Add "op" parameter.
+ (evaluate_subexp_opencl): Update.
+ * c-exp.h (opencl_binop_operation): New template class.
+ (opencl_assign_operation, opencl_equal_operation)
+ (opencl_notequal_operation, opencl_less_operation)
+ (opencl_gtr_operation, opencl_geq_operation)
+ (opencl_leq_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * opencl-lang.c (opencl_value_cast): No longer static.
+ * c-exp.h (opencl_cast_type_operation): New typedef.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * f-exp.h (eval_op_f_allocated): Declare.
+ (fortran_allocated_operation): New typedef.
+ * f-lang.c (eval_op_f_allocated): No longer static.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * f-lang.c (eval_op_f_associated): New functions.
+ * f-exp.h (fortran_associated_1arg, fortran_associated_2arg): New
+ typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * f-lang.c (fortran_bound_1arg::evaluate)
+ (fortran_bound_2arg::evaluate): New methods.
+ * f-exp.h (class fortran_bound_1arg, class fortran_bound_2arg):
+ New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class unop_addr_operation) <get_expression>: New
+ method.
+ * f-lang.c (fortran_undetermined::value_subarray)
+ (fortran_undetermined::evaluate): New methods.
+ (fortran_prepare_argument): New overload.
+ * f-exp.h (class fortran_range_operation)
+ (class fortran_undetermined): New classes.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (rust_structop::evaluate_funcall): New method.
+ * rust-exp.h (class rust_structop) <evaluate_funcall>: Declare
+ method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expression.h (class operation) <evaluate_funcall>: New methods.
+ * expop.h (class scope_operation) <evaluate_funcall>: New method.
+ (class var_value_operation) <evaluate_funcall>: New method.
+ (class structop_base_operation) <evaluate_funcall>: New method.
+ (class var_msym_value_operation) <evaluate_funcall>: New method.
+ (class structop_member_base): New class.
+ (class structop_member_operation): Derive from
+ structop_member_base.
+ (class structop_mptr_operation): Derive from
+ structop_member_base.
+ (class funcall_operation): New class.
+ * eval.c (operation::evaluate_funcall)
+ (var_value_operation::evaluate_funcall)
+ (scope_operation::evaluate_funcall)
+ (structop_member_base::evaluate_funcall)
+ (structop_base_operation::evaluate_funcall): New methods.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class array_operation): New.
+ * eval.c (array_operation::evaluate_struct_tuple)
+ (array_operation::evaluate): New methods.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class adl_func_operation): New.
+ * eval.c (adl_func_operation::evaluate): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_unop_in_range): No longer static.
+ * ada-exp.h (class ada_unop_range_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_unop_neg, ada_atr_tag, ada_atr_size, ada_abs):
+ No longer static.
+ * ada-exp.h (ada_neg_operation, ada_atr_tag_operation)
+ (ada_atr_size_operation, ada_abs_operation): New typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class logical_and_operation)
+ (class logical_or_operation): New.
+ * eval.c (logical_and_operation::evaluate)
+ (logical_or_operation::evaluate): New methods.
+ * ax-gdb.c (logical_and_operation::do_generate_ax)
+ (logical_or_operation::do_generate_ax): New methods.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * m2-lang.c (eval_op_m2_high, eval_op_m2_subscript): No longer
+ static.
+ * m2-exp.h: New file.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (rust_aggregate_operation::evaluate): New method.
+ * rust-exp.h (class rust_aggregate_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (eval_op_rust_struct_anon, eval_op_rust_structop):
+ No longer static.
+ * rust-exp.h (class rust_struct_anon): New.
+ (class rust_structop): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (rust_range): No longer static.
+ * rust-exp.h (class rust_range_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (rust_subscript): No longer static.
+ * rust-exp.h (class rust_subscript_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (eval_op_rust_ind): No longer static. Add "opcode"
+ parameter.
+ (rust_evaluate_subexp): Update.
+ * rust-exp.h (class rust_unop_ind_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * rust-lang.c (eval_op_rust_complement, eval_op_rust_array): No
+ longer static. Add "opcode" parameter.
+ (rust_evaluate_subexp): Update.
+ * rust-exp.h: New file.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * f-lang.c (eval_op_f_abs, eval_op_f_mod, eval_op_f_ceil)
+ (eval_op_f_floor, eval_op_f_modulo, eval_op_f_cmplx)
+ (eval_op_f_kind): No longer static. Add "opcode" parameter.
+ (evaluate_subexp_f): Update.
+ * f-exp.h: New file.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_ternop_range_operation::evaluate): New method.
+ * ada-exp.h (class ada_ternop_range_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_qual_operation::evaluate): New method.
+ * ada-exp.h (class ada_qual_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_string_operation::evaluate): New method.
+ * ada-exp.h (class ada_string_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * ada-lang.c (ada_wrapped_operation::evaluate): New method.
+ * ada-exp.h: New file.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class multi_subscript_operation): New.
+ * eval.c (multi_subscript_operation::evaluate): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * eval.c (objc_msgcall_operation::evaluate): New method.
+ * c-exp.h (class objc_msgcall_operation): New.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class var_value_operation): New.
+ * eval.c (var_value_operation::evaluate)
+ (var_value_operation::evaluate_for_address)
+ (var_value_operation::evaluate_with_coercion)
+ (var_value_operation::evaluate_for_sizeof)
+ (var_value_operation::evaluate_for_cast): New methods.
+ * ax-gdb.c (var_value_operation::do_generate_ax): New method.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (cxx_cast_ftype): New typedef.
+ (cxx_cast_operation): New template.
+ (dynamic_cast_operation, reinterpret_cast_operation): New
+ typedefs.
+
+2021-03-08 Tom Tromey <tom@tromey.com>
+
+ * expop.h (class unop_cast_type_operation): New.
+ * ax-gdb.c (unop_cast_type_operation::do_generate_ax): New
+ method.
+
2021-03-08 Tom Tromey <tom@tromey.com>
* expop.h (class unop_cast_operation): New.