mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-25 11:16:56 +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:
@ -88,6 +88,13 @@ enum exp_opcode
|
||||
when X is a pointer instead of an aggregate. */
|
||||
STRUCTOP_MPTR,
|
||||
|
||||
/* TYPE_INSTANCE is used when the user specifies a specific
|
||||
type instantiation for overloaded methods/functions.
|
||||
|
||||
The format is:
|
||||
TYPE_INSTANCE num_types type0 ... typeN num_types TYPE_INSTANCE */
|
||||
TYPE_INSTANCE,
|
||||
|
||||
/* end of C++. */
|
||||
|
||||
/* For Modula-2 integer division DIV */
|
||||
|
Reference in New Issue
Block a user