diff options
author | Keith Seitz <keiths@redhat.com> | 2009-11-10 22:17:58 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2009-11-10 22:17:58 +0000 |
commit | 072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc (patch) | |
tree | 85866ec9e0e9094885d8fd85f03e0bb96bbab06c /gdb/expression.h | |
parent | 85feb311d32bf996c4da799a89be375b31d1b3e7 (diff) | |
download | gdb-072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc.zip gdb-072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc.tar.gz gdb-072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/expression.h')
-rw-r--r-- | gdb/expression.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/expression.h b/gdb/expression.h index effe1f0..82b9367 100644 --- a/gdb/expression.h +++ b/gdb/expression.h @@ -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 */ |