aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2009-11-10 22:17:58 +0000
committerKeith Seitz <keiths@redhat.com>2009-11-10 22:17:58 +0000
commit072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc (patch)
tree85866ec9e0e9094885d8fd85f03e0bb96bbab06c /gdb/expression.h
parent * gdb.cp/overload.exp: Add tests for resolving overloaded (diff)
downloadbinutils-gdb-072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc.tar.gz
binutils-gdb-072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc.tar.bz2
binutils-gdb-072bba3b0f3e2ee8d2cfc94e256d0f0ebc627afc.zip
* 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.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/expression.h b/gdb/expression.h
index effe1f042ed..82b9367dd60 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 */