This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA]: Clean up C++ type handling in linespec parsing
- To: Fernando Nasser <fnasser at redhat dot com>
- Subject: Re: [RFA]: Clean up C++ type handling in linespec parsing
- From: Elena Zannoni <ezannoni at cygnus dot com>
- Date: Fri, 16 Mar 2001 09:35:26 -0500 (EST)
- Cc: Jim Blandy <jimb at cygnus dot com>, gdb-patches at sources dot redhat dot com, Elena Zannoni <ezannoni at cygnus dot com>
- References: <200103160310.WAA26454@zwingli.cygnus.com><3AB1DD86.42DA7AC@redhat.com>
Fernando Nasser writes:
> OK with me. Lets ask Elena.
>
> Elena, I know that you would like to move this to some language land,
> but maybe its better get it fixed anyway.
>
:-) true. Fine by me, check it in.
Elena
> Fernando
>
>
> Jim Blandy wrote:
> >
> > 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
>
> --
> Fernando Nasser
> Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
> 2323 Yonge Street, Suite #300
> Toronto, Ontario M4P 2C9
>