Introduce ada_binop_addsub_operation
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index 924497ea9e59144f3c6b5a7f85a9ad74934c027f..597513aea86ade2ad43094e098284e54483d83ea 100644 (file)
@@ -1,3 +1,548 @@
+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.
+       * ax-gdb.c (unop_cast_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class assign_modify_operation): New.
+       * eval.c (eval_binop_assign_modify): No longer static.
+       * ax-gdb.c (assign_modify_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class assign_operation): New.
+       * ax-gdb.c (assign_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class type_instance_operation): New.
+       * eval.c (type_instance_operation::evaluate): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class op_this_operation): New.
+       * ax-gdb.c (op_this_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class unop_memval_operation)
+       (class unop_memval_type_operation): New.
+       * eval.c (eval_op_memval): No longer static.
+       (unop_memval_operation::evaluate_for_address)
+       (unop_memval_type_operation::evaluate_for_address)
+       (unop_memval_operation::evaluate_for_sizeof)
+       (unop_memval_type_operation::evaluate_for_sizeof): New methods.
+       * ax-gdb.c (unop_memval_operation::do_generate_ax)
+       (unop_memval_type_operation::do_generate_ax): New methods.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class unop_alignof_operation): New.
+       * eval.c (eval_op_alignof): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class unop_sizeof_operation): New.
+       * ax-gdb.c (unop_sizeof_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class unop_addr_operation): New.
+       * ax-gdb.c (gen_expr_unop) <case UNOP_ADDR>: New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class typeid_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class decltype_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class typeof_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class type_operation): New.
+       * eval.c (eval_op_type): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class unop_ind_base_operation)
+       (class unop_ind_operation): New.
+       * eval.c (eval_op_ind): No longer static.  Remove "op" parameter.
+       (unop_ind_base_operation::evaluate_for_address)
+       (unop_ind_base_operation::evaluate_for_sizeof): New method.
+       * ax-gdb.c (gen_expr_unop) <case UNOP_IND>: New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (unop_incr_operation): New template.
+       (preinc_operation, predec_operation, postinc_operation)
+       (postdec_operation): New typedefs.
+       * eval.c (eval_op_preinc, eval_op_predec, eval_op_postinc)
+       (eval_op_postdec): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (unary_ftype): New typedef.
+       (unop_operation, usual_ax_binop_operation): New templates.
+       (unary_plus_operation, unary_neg_operation)
+       (unary_complement_operation, unary_logical_not_operation): New
+       typedefs.
+       * eval.c (eval_op_plus, eval_op_neg, eval_op_complement)
+       (eval_op_lognot): No longer static.
+       * ax-gdb.c (gen_expr_unop): New function.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * ax-gdb.c (comma_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class repeat_operation): New.
+       * eval.c (eval_op_repeat): No longer static.  Remove "op"
+       parameter.
+       (evaluate_subexp_standard): Update.
+       * ax-gdb.c (repeat_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class comparison_operation): New.
+       (equal_operation, notequal_operation, less_operation)
+       (gtr_operation, geq_operation, leq_operation): New typedefs.
+       * eval.c (eval_op_equal, eval_op_notequal, eval_op_less)
+       (eval_op_gtr, eval_op_geq, eval_op_leq): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class subscript_operation): New.
+       * eval.c (eval_op_subscript): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class binop_operation, class usual_ax_binop_operation):
+       New.
+       (exp_operation, intdiv_operation, mod_operation, mul_operation)
+       (div_operation, rem_operation, lsh_operation, rsh_operation)
+       (bitwise_and_operation, bitwise_ior_operation)
+       (bitwise_xor_operation): New typedefs.
+       * eval.c (eval_op_binary): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class sub_operation): New.
+       * eval.c (eval_op_sub): No longer static.  Remove "op" parameter.
+       (evaluate_subexp_standard): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class add_operation): New.
+       * eval.c (eval_op_add): No longer static.  Remove "op" parameter.
+       (evaluate_subexp_standard): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class concat_operation): New.
+       * eval.c (eval_op_concat): No longer static.  Remove "op"
+       parameter.
+       (evaluate_subexp_standard): Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class structop_member_operation)
+       (class structop_mptr_operation): New.
+       * eval.c (eval_op_member): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class structop_ptr_operation): New.
+       * eval.c (eval_op_structop_ptr): No longer static.  Remove "op"
+       parameter.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class structop_base_operation)
+       (class structop_operation): New.
+       * eval.c (eval_op_structop_struct): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class complex_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * eval.c (eval_op_objc_selector): No longer static.
+       * c-exp.h (class objc_selector_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * eval.c: Include c-exp.h.
+       * c-exp.h (class objc_nsstring_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * c-lang.c (c_string_operation::evaluate): New method.
+       * c-exp.h: New file.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class ternop_cond_operation): New.
+       * ax-gdb.c (ternop_cond_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class ternop_slice_operation): New.
+       * eval.c (eval_op_ternop): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class string_operation): New.
+       * eval.c (eval_op_string): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class internalvar_operation): New.
+       * ax-gdb.c (internalvar_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class bool_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class register_operation): New.
+       * eval.c (eval_op_register): No longer static.
+       * ax-gdb.c (register_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class last_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class func_static_var_operation): New.
+       * eval.c (eval_op_func_static_var): No longer static.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class var_entry_value_operation): New.
+       * eval.c (eval_op_var_entry_value): No longer static.
+
+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.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class long_const_operation): New.
+       * ax-gdb.c (long_const_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (class scope_operation): New.
+       * eval.c (eval_op_scope): No longer static.
+       (scope_operation::evaluate_for_address): New method.
+       * ax-gdb.c (scope_operation::do_generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expprint.c (float_const_operation::dump): New method.
+       * expop.h (float_data): New typedef.
+       (class float_const_operation): New.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expop.h (gen_expr_binop, gen_expr_structop): Declare.
+       * ax-gdb.c (gen_expr_binop): New function.
+       (gen_expr_structop): Likewise.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expprint.c (expr::dump_for_expression): New functions.
+       * expop.h (dump_for_expression): New overloads.
+       (tuple_holding_operation::dump, tuple_holding_operation::do_dump):
+       Update.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * expression.h (expr::operation): New class.
+       (expr::make_operation): New function.
+       (expr::operation_up): New typedef.
+       * expop.h: New file.
+       * eval.c (operation::evaluate_for_cast)
+       (operation::evaluate_for_address, operation::evaluate_for_sizeof):
+       New methods.
+       * ax-gdb.c (operation::generate_ax): New method.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * ax-gdb.c (gen_expr_binop_rest): Remove "pc" parameter.
+       (gen_expr_binop_rest): New overload.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * eval.c (eval_multi_subscript): New function.
+       (evaluate_subexp_standard): Use it.
+
+2021-03-08  Tom Tromey  <tom@tromey.com>
+
+       * ada-lang.c (ada_binop_exp): New function.
+       (ada_evaluate_subexp): Use it.
+
 2021-03-08  Tom Tromey  <tom@tromey.com>
 
        * ada-lang.c (ada_val_atr): Rename from value_val_atr.  Change
This page took 0.078713 seconds and 4 git commands to generate.