Add ADL support
authorSami Wagiaalla <swagiaal@redhat.com>
Fri, 7 May 2010 14:46:28 +0000 (14:46 +0000)
committerSami Wagiaalla <swagiaal@redhat.com>
Fri, 7 May 2010 14:46:28 +0000 (14:46 +0000)
commit7322dca9c16dfce7e9019240ac21037f2a4d6cb7
tree15ef1ee23eb0d09d802c4f8fc1424b430d2a76f8
parent3f1f688424574eaba15256ec436b564a8e2e8c20
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.
13 files changed:
gdb/ChangeLog
gdb/c-exp.y
gdb/cp-support.c
gdb/cp-support.h
gdb/eval.c
gdb/expprint.c
gdb/expression.h
gdb/parse.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cp/koenig.cc [new file with mode: 0644]
gdb/testsuite/gdb.cp/koenig.exp [new file with mode: 0644]
gdb/valops.c
gdb/value.h