* 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:
parent
85feb311d3
commit
072bba3b0f
7 changed files with 173 additions and 15 deletions
|
@ -436,6 +436,7 @@ extern struct value *value_struct_elt (struct value **argp,
|
|||
|
||||
extern struct value *value_aggregate_elt (struct type *curtype,
|
||||
char *name,
|
||||
struct type *expect_type,
|
||||
int want_address,
|
||||
enum noside noside);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue