diff options
author | swagiaal <swagiaal> | 2010-06-07 16:11:26 +0000 |
---|---|---|
committer | swagiaal <swagiaal> | 2010-06-07 16:11:26 +0000 |
commit | 2b089485f568b64ace7a8910ea43843c9f7b2fb9 (patch) | |
tree | 3ef2932a0aa9d178e2b5d0d30ddfbabd6946a297 /gdb/eval.c | |
parent | d2489d897948c4948f40f16b6c27fd3da1409188 (diff) | |
download | gdb-2b089485f568b64ace7a8910ea43843c9f7b2fb9.tar.gz |
Test and support all cpp operator types.
2010-06-07 Sami Wagiaalla <swagiaal@redhat.com>
* value.h: Created oload_search_type enum.
(find_overload_match): Use oload_search_type enum.
* valops.c (find_overload_match): Support combined member and
non-member search.
* eval.c (evaluate_subexp_standard): Calls to
find_overload_match now use oload_search_type enum.
(oload_method_static): Verify index is a proper value.
* valarith.c (value_user_defined_cpp_op): Search for and handle
both member and non-member operators.
(value_user_defined_cpp_op): New function.
(value_user_defined_op): New function.
(value_x_unop): Use value_user_defined_op.
(value_x_binop): Ditto.
* cp-support.c (make_symbol_overload_list_using): Added block
iteration.
Add check for namespace aliases and imported declarations.
2010-06-07 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/koenig.exp: Test for ADL operators.
* gdb.cp/koenig.cc: Added ADL operators.
* gdb.cp/operator.exp: New test.
* gdb.cp/operator.cc: New test.
Diffstat (limited to 'gdb/eval.c')
-rw-r--r-- | gdb/eval.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gdb/eval.c b/gdb/eval.c index 8efb45a8f88..9a60616d56c 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -1535,7 +1535,7 @@ evaluate_subexp_standard (struct type *expect_type, arg_types[ix - 1] = value_type (argvec[ix]); find_overload_match (arg_types, nargs, func_name, - 0 /* not method */ , 0 /* strict match */ , + NON_METHOD /* not method */ , 0 /* strict match */ , NULL, NULL /* pass NULL symbol since symbol is unknown */ , NULL, &symp, NULL, 0); @@ -1572,7 +1572,7 @@ evaluate_subexp_standard (struct type *expect_type, arg_types[ix - 1] = value_type (argvec[ix]); (void) find_overload_match (arg_types, nargs, tstr, - 1 /* method */ , 0 /* strict match */ , + METHOD /* method */ , 0 /* strict match */ , &arg2 /* the object */ , NULL, &valp, NULL, &static_memfuncp, 0); @@ -1642,8 +1642,8 @@ evaluate_subexp_standard (struct type *expect_type, arg_types[ix - 1] = value_type (argvec[ix]); (void) find_overload_match (arg_types, nargs, NULL /* no need for name */ , - 0 /* not method */ , 0 /* strict match */ , - NULL, function /* the function */ , + NON_METHOD /* not method */ , 0 /* strict match */ , + NULL, function /* the function */ , NULL, &symp, NULL, no_adl); if (op == OP_VAR_VALUE) |