From mboxrd@z Thu Jan 1 00:00:00 1970 From: Elena Zannoni To: Fernando Nasser Cc: Jim Blandy , gdb-patches@sources.redhat.com, Elena Zannoni Subject: Re: [RFA]: Clean up C++ type handling in linespec parsing Date: Fri, 16 Mar 2001 06:35:00 -0000 Message-id: <15026.9390.946629.99629@kwikemart.cygnus.com> References: <200103160310.WAA26454@zwingli.cygnus.com> <3AB1DD86.42DA7AC@redhat.com> X-SW-Source: 2001-03/msg00281.html 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 > > > > * 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 >