This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA]: Clean up C++ type handling in linespec parsing
- To: gdb-patches at sources dot redhat dot com
- Subject: [RFA]: Clean up C++ type handling in linespec parsing
- From: Jim Blandy <jimb at zwingli dot cygnus dot com>
- Date: Thu, 15 Mar 2001 22:10:24 -0500 (EST)
2001-03-15 Jim Blandy <jimb@redhat.com>
* linespec.c (find_methods): Just call CHECK_TYPEDEF on t, rather
than asking for sym_class's type; that's circuitous. Remove
sym_class, since the last use of it is gone. (This is a minor
revision of a change from Dan Berlin.)
Index: gdb/linespec.c
===================================================================
RCS file: /cvs/src/src/gdb/linespec.c,v
retrieving revision 1.6
diff -c -c -r1.6 linespec.c
*** gdb/linespec.c 2001/03/14 18:36:45 1.6
--- gdb/linespec.c 2001/03/16 02:06:33
***************
*** 104,126 ****
{
int i1 = 0;
int ibase;
- struct symbol *sym_class;
char *class_name = type_name_no_tag (t);
/* Ignore this class if it doesn't have a name. This is ugly, but
unless we figure out how to get the physname without the name of
the class, then the loop can't do any good. */
if (class_name
! && (sym_class = lookup_symbol (class_name,
! (struct block *) NULL,
! STRUCT_NAMESPACE,
! (int *) NULL,
! (struct symtab **) NULL)))
{
int method_counter;
! /* FIXME: Shouldn't this just be CHECK_TYPEDEF (t)? */
! t = SYMBOL_TYPE (sym_class);
/* Loop over each method name. At this level, all overloads of a name
are counted as a single name. There is an inner loop which loops over
--- 104,122 ----
{
int i1 = 0;
int ibase;
char *class_name = type_name_no_tag (t);
/* Ignore this class if it doesn't have a name. This is ugly, but
unless we figure out how to get the physname without the name of
the class, then the loop can't do any good. */
if (class_name
! && (lookup_symbol (class_name, (struct block *) NULL,
! STRUCT_NAMESPACE, (int *) NULL,
! (struct symtab **) NULL)))
{
int method_counter;
! CHECK_TYPEDEF (t);
/* Loop over each method name. At this level, all overloads of a name
are counted as a single name. There is an inner loop which loops over