Re: [PATCH 1/2] Test and support all cpp operator types

Tom Tromey
2010-06-04T20:55:33Z

Sami> It is weird but it is due to the nature of the symbol tables. The
Sami> first iteration, by make_symbol_overload_list_using, is iteration over
Sami> the blocks' import statements. The Second iteration is actually
Sami> searching for the symbol.

Sami> If we assume that names belonging to namespaces can only be in the
Sami> static scope -since namespace symbols are flattened to the nearest
Sami> parent- then we can separate the qualified and unqualified searches
Sami> and eliminate the nesting of the iterations.

Sami> Please see patch 2/2.

Thanks.

Sami> 2010-05-18 Sami Wagiaalla <swagiaal@redhat.com>
Sami> * value.h: Created oload_search_type enum.
Sami> (find_overload_match): Use oload_search_type enum.
Sami> * valops.c (find_overload_match): Support combined member and
Sami> non-member search.
Sami> * eval.c (evaluate_subexp_standard): Calls to
Sami> find_overload_match now use oload_search_type enum.
Sami> (oload_method_static): Verify index is a proper value.
Sami> * valarith.c (value_user_defined_cpp_op): Search for and handle
Sami> both member and non-member operators.
Sami> (value_user_defined_cpp_op): New function.
Sami> (value_user_defined_op): New function.
Sami> (value_x_unop): Use value_user_defined_op.
Sami> (value_x_binop): Ditto.
Sami> * cp-support.c (make_symbol_overload_list_using): Added block
Sami> iteration.
Sami> Add check for namespace aliases and imported declarations.
> 2010-05-18 Sami Wagiaalla <swagiaal@redhat.com>
Sami> * gdb.cp/koenig.exp: Test for ADL operators.
Sami> * gdb.cp/koenig.cc: Added ADL operators.
Sami> * gdb.cp/operator.exp: New test.
Sami> * gdb.cp/operator.cc: New test.

This is ok. Thanks again.

Tom