* stabsread.c (read_member_functions): Fix is_stub test for
static member functions, improve comment.
This commit is contained in:
parent
effb06016a
commit
4ea09c106d
2 changed files with 29 additions and 7 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2002-03-08 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
||||||
|
|
||||||
|
* stabsread.c (read_member_functions): Fix is_stub test for
|
||||||
|
static member functions, improve comment.
|
||||||
|
|
||||||
2002-03-07 Richard Earnshaw <rearnsha@arm.com>
|
2002-03-07 Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
|
||||||
* remote-rdi.c (myprint): Replace 'PTR' with 'void *'.
|
* remote-rdi.c (myprint): Replace 'PTR' with 'void *'.
|
||||||
|
|
|
@ -3287,13 +3287,30 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
|
||||||
}
|
}
|
||||||
case '?':
|
case '?':
|
||||||
/* static member function. */
|
/* static member function. */
|
||||||
new_sublist->fn_field.voffset = VOFFSET_STATIC;
|
{
|
||||||
if (strncmp (new_sublist->fn_field.physname,
|
int slen = strlen (main_fn_name);
|
||||||
main_fn_name, strlen (main_fn_name)))
|
|
||||||
{
|
new_sublist->fn_field.voffset = VOFFSET_STATIC;
|
||||||
new_sublist->fn_field.is_stub = 1;
|
|
||||||
}
|
/* For static member functions, we can't tell if they
|
||||||
break;
|
are stubbed, as they are put out as functions, and not as
|
||||||
|
methods.
|
||||||
|
GCC v2 emits the fully mangled name if
|
||||||
|
dbxout.c:flag_minimal_debug is not set, so we have to
|
||||||
|
detect a fully mangled physname here and set is_stub
|
||||||
|
accordingly. Fully mangled physnames in v2 start with
|
||||||
|
the member function name, followed by two underscores.
|
||||||
|
GCC v3 currently always emits stubbed member functions,
|
||||||
|
but with fully mangled physnames, which start with _Z. */
|
||||||
|
if (!(strncmp (new_sublist->fn_field.physname,
|
||||||
|
main_fn_name, slen) == 0
|
||||||
|
&& new_sublist->fn_field.physname[slen] == '_'
|
||||||
|
&& new_sublist->fn_field.physname[slen + 1] == '_'))
|
||||||
|
{
|
||||||
|
new_sublist->fn_field.is_stub = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* error */
|
/* error */
|
||||||
|
|
Loading…
Reference in a new issue