* stabsread.c (read_member_functions): Skip member functions which

are duplicates of the callable constructor/destructor.
This commit is contained in:
Daniel Jacobowitz 2001-12-07 23:30:13 +00:00
parent 82c7b87461
commit 23abb74e4b
2 changed files with 36 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-12-07 Daniel Jacobowitz <drow@mvista.com>
* stabsread.c (read_member_functions): Skip member functions which
are duplicates of the callable constructor/destructor.
2001-12-07 Jim Blandy <jimb@redhat.com>
* s390-tdep.c (s390_store_return_value): Don't convert float

View File

@ -2953,6 +2953,7 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
{
int nfn_fields = 0;
int length = 0;
int skip_method;
/* Total number of member functions defined in this class. If the class
defines two `f' functions, and one `g' function, then this will have
the value 3. */
@ -2992,6 +2993,36 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
look_ahead_type = NULL;
length = 0;
skip_method = 0;
if (p - *pp == strlen ("__base_ctor")
&& strncmp (*pp, "__base_ctor", strlen ("__base_ctor")) == 0)
skip_method = 1;
else if (p - *pp == strlen ("__base_dtor")
&& strncmp (*pp, "__base_dtor", strlen ("__base_dtor")) == 0)
skip_method = 1;
else if (p - *pp == strlen ("__deleting_dtor")
&& strncmp (*pp, "__deleting_dtor",
strlen ("__deleting_dtor")) == 0)
skip_method = 1;
if (skip_method)
{
/* Skip past '::'. */
*pp = p + 2;
/* Read the type. */
read_type (pp, objfile);
/* Skip past the colon, mangled name, semicolon, flags, and final
semicolon. */
while (**pp != ';')
(*pp) ++;
(*pp) ++;
while (**pp != ';')
(*pp) ++;
(*pp) ++;
continue;
}
new_fnlist = (struct next_fnfieldlist *)
xmalloc (sizeof (struct next_fnfieldlist));
make_cleanup (xfree, new_fnlist);