mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-25 19:58:06 +08:00
* c-exp.y: Add new rule for resolving method overloads.
* eval.c (make_params): New function. (free_param_types): New function. (evaluate_subexp_standard): Pass expect_type to value_aggregate_elt. Handle case TYPE_INSTANCE. (evaluate_subexp_for_address): Pass expect_type to value_aggregate_elt. * expression.h (enum exp_opcode): Add TYPE_INSTANCE. (compare_parameters): Add declaration. * parse.c (operator_length_standard): Add TYPE_INSTANCE. * valops.c (value_aggregate_elt): Add new expect_type parameter. Pass expect_type to value_struct_elt_for_reference. (value_struct_elt_for_reference): Add expect_type parameter and use compare_parameters. Check for overload matches with and without artificial parameters. Skip artificial methods. (compare_parameters): New function. * value.h (value_aggregate_elt): Add new expect_type parameter.
This commit is contained in:
@ -837,6 +837,11 @@ operator_length_standard (struct expression *expr, int endpos,
|
||||
args = 1 + longest_to_int (expr->elts[endpos - 2].longconst);
|
||||
break;
|
||||
|
||||
case TYPE_INSTANCE:
|
||||
oplen = 4 + longest_to_int (expr->elts[endpos - 2].longconst);
|
||||
args = 1;
|
||||
break;
|
||||
|
||||
case OP_OBJC_MSGCALL: /* Objective C message (method) call */
|
||||
oplen = 4;
|
||||
args = 1 + longest_to_int (expr->elts[endpos - 2].longconst);
|
||||
|
Reference in New Issue
Block a user