* valops.c (value_struct_elt_for_reference): Do not rely on
field order.
This commit is contained in:
parent
28e67f5d75
commit
7f79b1c54f
2 changed files with 22 additions and 15 deletions
|
@ -1,3 +1,8 @@
|
|||
2009-12-04 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* valops.c (value_struct_elt_for_reference): Do not rely on
|
||||
field order.
|
||||
|
||||
2009-12-03 Richard Ward <richard.j.ward1@googlemail.com>
|
||||
|
||||
* python/py-type.c (convert_field): New attribute "is_base_class".
|
||||
|
|
32
gdb/valops.c
32
gdb/valops.c
|
@ -2700,29 +2700,31 @@ value_struct_elt_for_reference (struct type *domain, int offset,
|
|||
}
|
||||
|
||||
if (j == len)
|
||||
error (_("no member function matches that type instantiation")); }
|
||||
error (_("no member function matches that type instantiation"));
|
||||
}
|
||||
else
|
||||
{
|
||||
int ii;
|
||||
/* Skip artificial methods. This is necessary if, for example,
|
||||
the user wants to "print subclass::subclass" with only
|
||||
one user-defined constructor. There is no ambiguity in this
|
||||
case. */
|
||||
|
||||
j = -1;
|
||||
for (ii = 0; ii < TYPE_FN_FIELDLIST_LENGTH (t, i);
|
||||
++ii)
|
||||
{
|
||||
/* Skip artificial methods. This is necessary if,
|
||||
for example, the user wants to "print
|
||||
subclass::subclass" with only one user-defined
|
||||
constructor. There is no ambiguity in this
|
||||
case. */
|
||||
if (TYPE_FN_FIELD_ARTIFICIAL (f, ii))
|
||||
--len;
|
||||
continue;
|
||||
|
||||
/* Desired method is ambiguous if more than one
|
||||
method is defined. */
|
||||
if (j != -1)
|
||||
error (_("non-unique member `%s' requires type instantiation"), name);
|
||||
|
||||
j = ii;
|
||||
}
|
||||
|
||||
/* Desired method is ambiguous if more than one method is
|
||||
defined. */
|
||||
if (len > 1)
|
||||
error (_("non-unique member `%s' requires type instantiation"), name);
|
||||
|
||||
/* This assumes, of course, that all artificial methods appear
|
||||
BEFORE any concrete methods. */
|
||||
j = TYPE_FN_FIELDLIST_LENGTH (t, i) - 1;
|
||||
}
|
||||
|
||||
if (TYPE_FN_FIELD_STATIC_P (f, j))
|
||||
|
|
Loading…
Reference in a new issue