PR c++/13225
authorKeith Seitz <keiths@redhat.com>
Fri, 14 Oct 2011 20:22:17 +0000 (20:22 +0000)
committerKeith Seitz <keiths@redhat.com>
Fri, 14 Oct 2011 20:22:17 +0000 (20:22 +0000)
commitda096638ca5fcd2fdb2ff8aff9e545c9b0cee478
tree6e8b6dc577aee9938f5665cd69b7c76854ec3e4e
parent59c0b43d759ef7eb7877f437e3373c39be5d640d
PR c++/13225
* eval.c (evaluate_subexp_standard): Do not construct
an array of types; pass the value array directly to
find_overload_match.
* gdbtypes.h (NULL_POINTER_CONVERSION_BADNESS): Declare.
(rank_function): Take an array of values instead of types.
(rank_one_type): Add struct value * parameter.
* gdbtypes.c (NULL_POINTER_CONVERSION_BADNESS): Define.
(rank_function): For each argument, pass the argument's
value to rank_one_type.
(rank_one_type): Add VALUE parameter.
If the parameter type is a pointer and the argument type
is an integer, return NULL_POINTER_CONVERSION_BADNESS if
VALUE is zero.
Update all calls to rank_one_type, passing NULL for new
VALUE parameter.
* valarith.c (value_user_defined_cpp_op): Do not construct
an array of types; pass the value array directly to
find_overload_match.
* valops.c (find_overload_method_list): Take an array of
values instead of types.
Save the type of OBJP for later use.
Update calls to find_oload_champ, and find_oload_champ_namespace.
(find_oload_champ_namespace): Take an array of values instead
of types.
(find_oload_champ_namespace_loop): Likewise.
(find_oload_champ): Likewise.
(classify_oload_match): Inspect all arguments
until INCOMPATIBLE is found. Return the worst badness found
otherwise.
(compare_parameters): Update call to rank_one_type.
* value.h (find_overload_match): Take an array of values instead
of types.
gdb/ChangeLog
gdb/eval.c
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/valarith.c
gdb/valops.c
gdb/value.h