PATCH: Remove 'args' from cplus_struct_type

Daniel Jacobowitz drow@mvista.com
Wed May 15 21:22:00 GMT 2002


Elena identified this as a merge error from HP, so I'm re-removing it as
obvious.  It was only assigned to by hpread.c, directly below the correct
assignments to the arg_types field in type_specific, with comments saying
they didn't know why it was there and it could probably be removed.  It was
accessed nowhere.

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer

2002-05-16 Daniel Jacobowitz  <drow@mvista.com>

	* gdbtypes.h (struct cplus_struct_type): Remove args field.
	* hpread.c (hpread_read_struct_type): Remove assignments to args.
	(fixup_class_method_type): Likewise.

Index: gdbtypes.h
===================================================================
RCS file: /cvs/src/src/gdb/gdbtypes.h,v
retrieving revision 1.30
diff -u -p -r1.30 gdbtypes.h
--- gdbtypes.h	14 May 2002 18:30:50 -0000	1.30
+++ gdbtypes.h	15 May 2002 20:01:42 -0000
@@ -604,13 +604,6 @@ struct cplus_struct_type
 
 	    struct type *type;
 
-	    /* The argument list.  Only valid if is_stub is clear.  Contains
-	       the type of each argument, including `this', and ending with
-	       a NULL pointer after the last argument.  Should not contain
-	       a `this' pointer for static member functions.  */
-
-	    struct type **args;
-
 	    /* For virtual functions.
 	       First baseclass that defines this virtual function.   */
 
Index: hpread.c
===================================================================
RCS file: /cvs/src/src/gdb/hpread.c,v
retrieving revision 1.19
diff -u -p -r1.19 hpread.c
--- hpread.c	14 May 2002 18:30:51 -0000	1.19
+++ hpread.c	15 May 2002 20:01:43 -0000
@@ -3961,7 +3961,6 @@ hpread_read_struct_type (dnttpointer hp_
 	      if (TYPE_INCOMPLETE (memtype))
 		{
 		  fn_p->field.fn_fields[ix].type = NULL;
-		  fn_p->field.fn_fields[ix].args = NULL;
 		}
 	      else
 		{
@@ -3979,18 +3978,8 @@ hpread_read_struct_type (dnttpointer hp_
 		  /* void termination */
 		  TYPE_TYPE_SPECIFIC (fn_p->field.fn_fields[ix].type)
 		    .arg_types[TYPE_NFIELDS (memtype)] = builtin_type_void;
-
-		  /* pai: It's not clear why this args field has to be set.  Perhaps
-		   * it should be eliminated entirely. */
-		  fn_p->field.fn_fields[ix].args =
-		    (struct type **) obstack_alloc (&objfile->type_obstack,
-			   sizeof (struct type *) * (TYPE_NFIELDS (memtype) + 1));
-		  for (i = 0; i < TYPE_NFIELDS (memtype); i++)
-		    fn_p->field.fn_fields[ix].args[i]
-		      = TYPE_FIELDS (memtype)[i].type;
-		  /* null-terminated, unlike arg_types above e */
-		  fn_p->field.fn_fields[ix].args[TYPE_NFIELDS (memtype)] = NULL;
 		}
+
 	      /* For virtual functions, fill in the voffset field with the
 	       * virtual table offset. (This is just copied over from the
 	       * SOM record; not sure if it is what GDB expects here...).
@@ -4474,16 +4463,6 @@ fixup_class_method_type (struct type *cl
 	    TYPE_TYPE_SPECIFIC (TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j)).arg_types[k] = TYPE_FIELDS (method)[k].type;
 	  /* void termination */
 	  TYPE_TYPE_SPECIFIC (TYPE_FN_FIELD_TYPE (TYPE_FN_FIELDLIST1 (class, i), j)).arg_types[TYPE_NFIELDS (method)] = builtin_type_void;
-
-	  /* pai: It's not clear why this args field has to be set.  Perhaps
-	   * it should be eliminated entirely. */
-	  (TYPE_FN_FIELD (TYPE_FN_FIELDLIST1 (class, i), j)).args
-	    = (struct type **) obstack_alloc (&objfile->type_obstack,
-			    sizeof (struct type *) * (TYPE_NFIELDS (method) + 1));
-	  for (k = 0; k < TYPE_NFIELDS (method); k++)
-	    (TYPE_FN_FIELD (TYPE_FN_FIELDLIST1 (class, i), j)).args[k] = TYPE_FIELDS (method)[k].type;
-	  /* null-terminated, unlike arg_types above */
-	  (TYPE_FN_FIELD (TYPE_FN_FIELDLIST1 (class, i), j)).args[TYPE_NFIELDS (method)] = NULL;
 
 	  /* Break out of both loops -- only one method to fix up in a class */
 	  goto finish;



More information about the Gdb-patches mailing list