mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
* stabsread.c (read_member_functions): Skip member functions which
are duplicates of the callable constructor/destructor.
This commit is contained in:
parent
82c7b87461
commit
23abb74e4b
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user