[RFA] stabsread.c: Fix for `ptype class Static' stabs FAIL
Peter.Schauer
Peter.Schauer@regent.e-technik.tu-muenchen.de
Wed Feb 27 11:20:00 GMT 2002
The patch below fixes the `ptype class Static' stabs FAIL from classes.exp.
Ok to commit ?
* stabsread.c (read_member_functions): Fix is_stub test for
static member functions, improve comment.
--- ./stabsread.c.orig Sat Feb 23 12:17:26 2002
+++ ./stabsread.c Wed Feb 27 20:08:37 2002
@@ -3287,13 +3287,27 @@ read_member_functions (struct field_info
}
case '?':
/* static member function. */
- new_sublist->fn_field.voffset = VOFFSET_STATIC;
- if (strncmp (new_sublist->fn_field.physname,
- main_fn_name, strlen (main_fn_name)))
- {
- new_sublist->fn_field.is_stub = 1;
- }
- break;
+ {
+ int slen = strlen (main_fn_name);
+
+ new_sublist->fn_field.voffset = VOFFSET_STATIC;
+
+ /* For static member functions, we can't tell if they
+ are stubbed, as they are put out as functions, and not as
+ methods.
+ GCC 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. */
+ 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:
/* error */
--
Peter Schauer pes@regent.e-technik.tu-muenchen.de
More information about the Gdb-patches
mailing list