diff options
author | swagiaal <swagiaal> | 2010-05-07 14:46:24 +0000 |
---|---|---|
committer | swagiaal <swagiaal> | 2010-05-07 14:46:24 +0000 |
commit | 3c30632200b0021f6fd6673553c3d124de629f68 (patch) | |
tree | 1fbe79e612b4748434aeca631f9463a41d95d955 /gdb/cp-support.h | |
parent | 87bebabc94a5e45723313af0c2427ed3711715b1 (diff) | |
download | gdb-3c30632200b0021f6fd6673553c3d124de629f68.tar.gz |
Add ADL support
2010-05-07 Sami Wagiaalla <swagiaal@redhat.com>
PR C++/7943:
* valops.c (find_overload_match): Handle fsym == NULL case.
Add int no_adl argument.
(find_oload_champ_namespace_loop): Call make_symbol_overload_list_adl
when appropriate.
Add int no_adl argument.
(find_oload_champ_namespace): Add int no_adl argument.
* parse.c (operator_length_standard): Return length for OP_ADL_FUNC
expression.
* expprint.c (op_name_standard): Added string for OP_ADL_FUNC case.
* eval.c (evaluate_subexp_standard): Added OP_ADL_FUNC case.
Evaluate arguments and use them to perform ADL lookup.
Pass no_adl argument to find_overload_match.
Disable adl lookup when evaluating a fully qualified OP_FUNCALL.
* cp-support.h: Added prototype for
make_symbol_overload_list_namespace.
* cp-support.c (make_symbol_overload_list_namespace): New function.
(make_symbol_overload_list_adl_namespace): New function.
(make_symbol_overload_list_adl): New function.
(make_symbol_overload_list_using): Moved code to add function to
overload set to make_symbol_overload_list_namespace.
* c-exp.y: create UNKNOWN_CPP_NAME token.
Add parse rule for ADL functions.
(classify_name): Recognize an UNKNOWN_CPP_NAME.
2010-05-07 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/koenig.exp: New test.
* gdb.cp/koenig.cc: New test program.
Diffstat (limited to 'gdb/cp-support.h')
-rw-r--r-- | gdb/cp-support.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/cp-support.h b/gdb/cp-support.h index dd4df842df1..ddc4c9377c5 100644 --- a/gdb/cp-support.h +++ b/gdb/cp-support.h @@ -110,6 +110,10 @@ extern char *cp_remove_params (const char *demangled_name); extern struct symbol **make_symbol_overload_list (const char *, const char *); +extern struct symbol **make_symbol_overload_list_adl (struct type **arg_types, + int nargs, + const char *func_name); + extern struct type *cp_lookup_rtti_type (const char *name, struct block *block); |