From 7322dca9c16dfce7e9019240ac21037f2a4d6cb7 Mon Sep 17 00:00:00 2001 From: Sami Wagiaalla Date: Fri, 7 May 2010 14:46:28 +0000 Subject: Add ADL support 2010-05-07 Sami Wagiaalla 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 * gdb.cp/koenig.exp: New test. * gdb.cp/koenig.cc: New test program. --- gdb/expression.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gdb/expression.h') diff --git a/gdb/expression.h b/gdb/expression.h index ca216cf..29ebde4 100644 --- a/gdb/expression.h +++ b/gdb/expression.h @@ -347,6 +347,10 @@ enum exp_opcode Then comes another OP_DECFLOAT. */ OP_DECFLOAT, + /* OP_ADL_FUNC specifies that the function is to be looked up in an + Argument Dependent manner (Koenig lookup). */ + OP_ADL_FUNC, + /* First extension operator. Individual language modules define extra operators in *.inc include files below always starting with numbering at OP_EXTENDED0: -- cgit v1.1