This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[RFA]: Clean up C++ type handling in linespec parsing



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]