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]

[PATCH] free() -> xfree() substitutions


I've just committed the changes below which substitute xfree() for
free() in the gdb sources.

The addition of the xfree() function was taken from the patch sent to
gdb-patches on November 30:

    http://sources.redhat.com/ml/gdb-patches/2000-11/msg00400.html

The rest of the changes were newly performed on updated sources using
the script posted in the same time period:

    http://sources.redhat.com/ml/gdb-patches/2000-11/msg00399.html

Note that the changes for mi and tui are listed in the ChangeLog entry
below.  If anyone has objection to these changes being listed here,
I'll move them to the ChangeLog files in the mi and tui directories. 
(The protoization changes are listed this way though and no one
objected.)

	* defs.h, utils.c (xfree): New function.
	* alpha-tdep.c, altos-xdep.c, arch-utils.c, arm-xdep.c,
	ax-general.c, bcache.c, blockframe.c, breakpoint.c,
	buildsym.c, c-typeprint.c, coffread.c, completer.c,
	convex-tdep.c, convex-xdep.c, corefile.c, corelow.c,
	cp-valprint.c, cxux-nat.c, d10v-tdep.c, d30v-tdep.c,
	dbxread.c, dcache.c, defs.h, demangle.c, dstread.c,
	dve3900-rom.c, dwarf2read.c, dwarfread.c, elfread.c,
	environ.c, event-loop.c, event-top.c, exec.c, f-lang.c,
	gdb-events.c, gdbarch.c, gdbtypes.c, gnu-nat.c, h8500-tdep.c,
	hp-psymtab-read.c, hppah-nat.c, infcmd.c, inflow.c, infrun.c,
	infttrace.c, irix5-nat.c, jv-typeprint.c, kod-cisco.c, kod.c,
	language.c, lin-lwp.c, lin-thread.c, linespec.c,
	linux-thread.c, main.c, maint.c, mdebugread.c, minsyms.c,
	mips-tdep.c, monitor.c, nlmread.c, objfiles.c, osfsolib.c,
	p-valprint.c, pa64solib.c, parse.c, printcmd.c,
	proc-service.c, procfs.c, pyr-xdep.c, remote-adapt.c,
	remote-bug.c, remote-eb.c, remote-es.c, remote-mips.c,
	remote-mm.c, remote-nindy.c, remote-rdi.c, remote-rdp.c,
	remote-udi.c, remote-vx.c, remote.c, rs6000-nat.c, ser-pipe.c,
	serial.c, solib-svr4.c, solib.c, somread.c, somsolib.c,
	source.c, sparcl-tdep.c, stabsread.c, stack.c, sun386-nat.c,
	symfile.c, symmisc.c, symtab.c, target.c, thread-db.c,
	thread.c, top.c, tracepoint.c, ui-file.c, ui-out.c,
	umax-xdep.c, utils.c, valops.c, valprint.c, values.c,
	varobj.c, win32-nat.c, wince.c, xcoffread.c, cli/cli-cmds.c,
	cli/cli-decode.c, cli/cli-script.c, cli/cli-setshow.c,
	mi/mi-cmd-disas.c, mi/mi-cmd-var.c, mi/mi-console.c,
	mi/mi-main.c, mi/mi-parse.c, tui/tui-file.c, tui/tui.c,
	tui/tuiData.c, tui/tuiLayout.c: Replace occurrences of free()
	with xfree().

Index: alpha-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/alpha-tdep.c,v
retrieving revision 1.6
diff -u -p -r1.6 alpha-tdep.c
--- alpha-tdep.c	2000/12/08 19:59:25	1.6
+++ alpha-tdep.c	2000/12/14 22:55:32
@@ -1154,7 +1154,7 @@ alpha_pop_frame (void)
       else
 	linked_proc_desc_table = pi_ptr->next;
 
-      free (pi_ptr);
+      xfree (pi_ptr);
     }
 }
 
Index: altos-xdep.c
===================================================================
RCS file: /cvs/src/src/gdb/altos-xdep.c,v
retrieving revision 1.1.1.4
diff -u -p -r1.1.1.4 altos-xdep.c
--- altos-xdep.c	1999/07/07 20:04:08	1.1.1.4
+++ altos-xdep.c	2000/12/14 22:55:32
@@ -59,7 +59,7 @@
 /* OBSOLETE      and mark data and stack spaces as empty.  *x/ */
 /* OBSOLETE  */
 /* OBSOLETE   if (corefile) */
-/* OBSOLETE     free (corefile); */
+/* OBSOLETE     xfree (corefile); */
 /* OBSOLETE   corefile = 0; */
 /* OBSOLETE  */
 /* OBSOLETE   if (corechan >= 0) */
@@ -76,7 +76,7 @@
 /* OBSOLETE   if (filename) */
 /* OBSOLETE     { */
 /* OBSOLETE       filename = tilde_expand (filename); */
-/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE       make_cleanup (xfree, filename); */
 /* OBSOLETE        */
 /* OBSOLETE       if (have_inferior_p ()) */
 /* OBSOLETE     error ("To look at a core file, you must kill the program with \"kill\"."); */
Index: arch-utils.c
===================================================================
RCS file: /cvs/src/src/gdb/arch-utils.c,v
retrieving revision 1.17
diff -u -p -r1.17 arch-utils.c
--- arch-utils.c	2000/12/04 04:01:15	1.17
+++ arch-utils.c	2000/12/14 22:55:34
@@ -534,7 +534,7 @@ info_architecture (char *args, int from_
 	{
 	  printf_filtered (" %s", *arch);
 	}
-      free (arches);
+      xfree (arches);
     }
   else
     {
Index: arm-xdep.c
===================================================================
RCS file: /cvs/src/src/gdb/arm-xdep.c,v
retrieving revision 1.1.1.6
diff -u -p -r1.1.1.6 arm-xdep.c
--- arm-xdep.c	1999/12/22 21:45:03	1.1.1.6
+++ arm-xdep.c	2000/12/14 22:55:39
@@ -172,7 +172,7 @@
 /* OBSOLETE      and mark data and stack spaces as empty.  *x/ */
 /* OBSOLETE  */
 /* OBSOLETE   if (corefile) */
-/* OBSOLETE     free (corefile); */
+/* OBSOLETE     xfree (corefile); */
 /* OBSOLETE   corefile = 0; */
 /* OBSOLETE  */
 /* OBSOLETE   if (corechan >= 0) */
@@ -189,7 +189,7 @@
 /* OBSOLETE   if (filename) */
 /* OBSOLETE     { */
 /* OBSOLETE       filename = tilde_expand (filename); */
-/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE       make_cleanup (xfree, filename); */
 /* OBSOLETE  */
 /* OBSOLETE       if (have_inferior_p ()) */
 /* OBSOLETE 	error ("To look at a core file, you must kill the program with \"kill\"."); */
@@ -320,7 +320,7 @@
 /* OBSOLETE      Mark text segment as empty.  *x/ */
 /* OBSOLETE  */
 /* OBSOLETE   if (execfile) */
-/* OBSOLETE     free (execfile); */
+/* OBSOLETE     xfree (execfile); */
 /* OBSOLETE   execfile = 0; */
 /* OBSOLETE   data_start = 0; */
 /* OBSOLETE   data_end -= exec_data_start; */
@@ -343,7 +343,7 @@
 /* OBSOLETE   if (filename) */
 /* OBSOLETE     { */
 /* OBSOLETE       filename = tilde_expand (filename); */
-/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE       make_cleanup (xfree, filename); */
 /* OBSOLETE  */
 /* OBSOLETE       execchan = openp (getenv ("PATH"), 1, filename, O_RDONLY, 0, */
 /* OBSOLETE 			&execfile); */
Index: ax-general.c
===================================================================
RCS file: /cvs/src/src/gdb/ax-general.c,v
retrieving revision 1.4
diff -u -p -r1.4 ax-general.c
--- ax-general.c	2000/07/30 01:48:24	1.4
+++ ax-general.c	2000/12/14 22:55:41
@@ -56,8 +56,8 @@ new_agent_expr (CORE_ADDR scope)
 void
 free_agent_expr (struct agent_expr *x)
 {
-  free (x->buf);
-  free (x);
+  xfree (x->buf);
+  xfree (x);
 }
 
 static void
@@ -416,7 +416,7 @@ ax_reqs (struct agent_expr *ax, struct a
       if (ax->buf[i] > (sizeof (aop_map) / sizeof (aop_map[0])))
 	{
 	  reqs->flaw = agent_flaw_bad_instruction;
-	  free (reg_mask);
+	  xfree (reg_mask);
 	  return;
 	}
 
@@ -425,14 +425,14 @@ ax_reqs (struct agent_expr *ax, struct a
       if (!op->name)
 	{
 	  reqs->flaw = agent_flaw_bad_instruction;
-	  free (reg_mask);
+	  xfree (reg_mask);
 	  return;
 	}
 
       if (i + 1 + op->op_size > ax->len)
 	{
 	  reqs->flaw = agent_flaw_incomplete_instruction;
-	  free (reg_mask);
+	  xfree (reg_mask);
 	  return;
 	}
 
@@ -441,7 +441,7 @@ ax_reqs (struct agent_expr *ax, struct a
       if (targets[i] && (heights[i] != height))
 	{
 	  reqs->flaw = agent_flaw_height_mismatch;
-	  free (reg_mask);
+	  xfree (reg_mask);
 	  return;
 	}
 
@@ -468,7 +468,7 @@ ax_reqs (struct agent_expr *ax, struct a
 	  if (target < 0 || target >= ax->len)
 	    {
 	      reqs->flaw = agent_flaw_bad_jump;
-	      free (reg_mask);
+	      xfree (reg_mask);
 	      return;
 	    }
 	  /* Have we already found other jumps to the same location?  */
@@ -477,7 +477,7 @@ ax_reqs (struct agent_expr *ax, struct a
 	      if (heights[i] != height)
 		{
 		  reqs->flaw = agent_flaw_height_mismatch;
-		  free (reg_mask);
+		  xfree (reg_mask);
 		  return;
 		}
 	    }
@@ -496,7 +496,7 @@ ax_reqs (struct agent_expr *ax, struct a
 	  if (!targets[i + 3])
 	    {
 	      reqs->flaw = agent_flaw_hole;
-	      free (reg_mask);
+	      xfree (reg_mask);
 	      return;
 	    }
 
@@ -531,7 +531,7 @@ ax_reqs (struct agent_expr *ax, struct a
     if (targets[i] && !boundary[i])
       {
 	reqs->flaw = agent_flaw_bad_jump;
-	free (reg_mask);
+	xfree (reg_mask);
 	return;
       }
 
Index: bcache.c
===================================================================
RCS file: /cvs/src/src/gdb/bcache.c,v
retrieving revision 1.4
diff -u -p -r1.4 bcache.c
--- bcache.c	2000/06/05 20:49:53	1.4
+++ bcache.c	2000/12/14 22:55:41
@@ -111,7 +111,7 @@ expand_hash_table (struct bcache *bcache
 
   /* Plug in the new table.  */
   if (bcache->bucket)
-    free (bcache->bucket);
+    xfree (bcache->bucket);
   bcache->bucket = new_buckets;
   bcache->num_buckets = new_num_buckets;
 }
@@ -173,7 +173,7 @@ free_bcache (struct bcache *bcache)
 {
   obstack_free (&bcache->cache, 0);
   if (bcache->bucket)
-    free (bcache->bucket);
+    xfree (bcache->bucket);
 
   /* This isn't necessary, but at least the bcache is always in a
      consistent state.  */
Index: blockframe.c
===================================================================
RCS file: /cvs/src/src/gdb/blockframe.c,v
retrieving revision 1.9
diff -u -p -r1.9 blockframe.c
--- blockframe.c	2000/12/11 21:34:27	1.9
+++ blockframe.c	2000/12/14 22:55:43
@@ -1137,8 +1137,8 @@ generic_push_dummy_frame (void)
     if (INNER_THAN (dummy_frame->fp, fp))	/* stale -- destroy! */
       {
 	dummy_frame_stack = dummy_frame->next;
-	free (dummy_frame->registers);
-	free (dummy_frame);
+	xfree (dummy_frame->registers);
+	xfree (dummy_frame);
 	dummy_frame = dummy_frame_stack;
       }
     else
@@ -1193,8 +1193,8 @@ generic_pop_dummy_frame (void)
   write_register_bytes (0, dummy_frame->registers, REGISTER_BYTES);
   flush_cached_frames ();
 
-  free (dummy_frame->registers);
-  free (dummy_frame);
+  xfree (dummy_frame->registers);
+  xfree (dummy_frame);
 }
 
 /* Function: frame_chain_valid 
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.21
diff -u -p -r1.21 breakpoint.c
--- breakpoint.c	2000/12/01 00:41:27	1.21
+++ breakpoint.c	2000/12/14 22:55:50
@@ -538,11 +538,11 @@ condition_command (char *arg, int from_t
     {
       if (b->cond)
 	{
-	  free ((PTR) b->cond);
+	  xfree (b->cond);
 	  b->cond = 0;
 	}
       if (b->cond_string != NULL)
-	free ((PTR) b->cond_string);
+	xfree (b->cond_string);
 
       if (*p == 0)
 	{
@@ -1655,7 +1655,7 @@ bpstat_clear (bpstat *bsp)
       q = p->next;
       if (p->old_val != NULL)
 	value_free (p->old_val);
-      free ((PTR) p);
+      xfree (p);
       p = q;
     }
   *bsp = NULL;
@@ -3044,7 +3044,7 @@ bpstat_get_triggered_catchpoints (bpstat
          catchpoint triggers.  Clients who may wish to know the name
          later must get it from the catchpoint itself.) */
       if (ep->triggered_dll_pathname != NULL)
-	free (ep->triggered_dll_pathname);
+	xfree (ep->triggered_dll_pathname);
       if (ep->type == bp_catch_load)
 	dll_pathname = SOLIB_LOADED_LIBRARY_PATHNAME (inferior_pid);
       else
@@ -4059,13 +4059,13 @@ solib_load_unload_1 (char *hookname, int
 
   /* Make sure that all storage allocated in decode_line_1 gets freed
      in case the following errors out.  */
-  old_chain = make_cleanup (free, sals.sals);
+  old_chain = make_cleanup (xfree, sals.sals);
   if (canonical != (char **) NULL)
     {
-      make_cleanup (free, canonical);
+      make_cleanup (xfree, canonical);
       canonical_strings_chain = make_cleanup (null_cleanup, 0);
       if (canonical[0] != NULL)
-	make_cleanup (free, canonical[0]);
+	make_cleanup (xfree, canonical[0]);
     }
 
   resolve_sal_pc (&sals.sals[0]);
@@ -4678,18 +4678,18 @@ break_command_1 (char *arg, int flag, in
   old_chain = make_cleanup (null_cleanup, 0);
 
   /* Make sure that all storage allocated to SALS gets freed.  */
-  make_cleanup (free, sals.sals);
+  make_cleanup (xfree, sals.sals);
 
   /* Cleanup the addr_string array but not its contents. */
-  make_cleanup (free, addr_string);
+  make_cleanup (xfree, addr_string);
 
   /* Allocate space for all the cond expressions. */
   cond = xcalloc (sals.nelts, sizeof (struct expression *));
-  make_cleanup (free, cond);
+  make_cleanup (xfree, cond);
 
   /* Allocate space for all the cond strings. */
   cond_string = xcalloc (sals.nelts, sizeof (char **));
-  make_cleanup (free, cond_string);
+  make_cleanup (xfree, cond_string);
 
   /* ----------------------------- SNIP -----------------------------
      Anything added to the cleanup chain beyond this point is assumed
@@ -4703,7 +4703,7 @@ break_command_1 (char *arg, int flag, in
   for (i = 0; i < sals.nelts; i++)
     {
       if (addr_string[i] != NULL)
-	make_cleanup (free, addr_string[i]);
+	make_cleanup (xfree, addr_string[i]);
     }
 
   /* Resolve all line numbers to PC's and verify that the addresses
@@ -4737,10 +4737,10 @@ break_command_1 (char *arg, int flag, in
 	    {
 	      tok = cond_start = end_tok + 1;
 	      cond[i] = parse_exp_1 (&tok, block_for_pc (sals.sals[i].pc), 0);
-	      make_cleanup (free, cond[i]);
+	      make_cleanup (xfree, cond[i]);
 	      cond_end = tok;
 	      cond_string[i] = savestring (cond_start, cond_end - cond_start);
-	      make_cleanup (free, cond_string[i]);
+	      make_cleanup (xfree, cond_string[i]);
 	    }
 	  else if (toklen >= 1 && strncmp (tok, "thread", toklen) == 0)
 	    {
@@ -4819,18 +4819,18 @@ do_captured_breakpoint (void *data)
   old_chain = make_cleanup (null_cleanup, 0);
 
   /* Always have a addr_string array, even if it is empty. */
-  make_cleanup (free, addr_string);
+  make_cleanup (xfree, addr_string);
 
   /* Make sure that all storage allocated to SALS gets freed.  */
-  make_cleanup (free, sals.sals);
+  make_cleanup (xfree, sals.sals);
 
   /* Allocate space for all the cond expressions. */
   cond = xcalloc (sals.nelts, sizeof (struct expression *));
-  make_cleanup (free, cond);
+  make_cleanup (xfree, cond);
 
   /* Allocate space for all the cond strings. */
   cond_string = xcalloc (sals.nelts, sizeof (char **));
-  make_cleanup (free, cond_string);
+  make_cleanup (xfree, cond_string);
 
   /* ----------------------------- SNIP -----------------------------
      Anything added to the cleanup chain beyond this point is assumed
@@ -4844,7 +4844,7 @@ do_captured_breakpoint (void *data)
   for (i = 0; i < sals.nelts; i++)
     {
       if (addr_string[i] != NULL)
-	make_cleanup (free, addr_string[i]);
+	make_cleanup (xfree, addr_string[i]);
     }
 
   /* Wait until now before checking for garbage at the end of the
@@ -4866,7 +4866,7 @@ do_captured_breakpoint (void *data)
 	  cond[i] = parse_exp_1 (&tok, block_for_pc (sals.sals[i].pc), 0);
 	  if (*tok != '\0')
 	    error ("Garbage %s follows condition", tok);
-	  make_cleanup (free, cond[i]);
+	  make_cleanup (xfree, cond[i]);
 	  cond_string[i] = xstrdup (args->condition);
 	}
     }
@@ -4968,7 +4968,7 @@ break_at_finish_at_depth_command_1 (char
 	  else
 	    sprintf (addr_string, "*0x%s", paddr_nz (high));
 	  break_command_1 (addr_string, flag, from_tty);
-	  free (addr_string);
+	  xfree (addr_string);
 	}
       else
 	error ("No function contains the specified address");
@@ -5037,8 +5037,8 @@ break_at_finish_command_1 (char *arg, in
   sals = decode_line_1 (&addr_string, 1, (struct symtab *) NULL, 0,
 			(char ***) NULL);
 
-  free (beg_addr_string);
-  old_chain = make_cleanup (free, sals.sals);
+  xfree (beg_addr_string);
+  old_chain = make_cleanup (xfree, sals.sals);
   for (i = 0; (i < sals.nelts); i++)
     {
       sal = sals.sals[i];
@@ -5050,7 +5050,7 @@ break_at_finish_command_1 (char *arg, in
 	  else
 	    sprintf (break_string, "*0x%s", paddr_nz (high));
 	  break_command_1 (break_string, flag, from_tty);
-	  free (break_string);
+	  xfree (break_string);
 	}
       else
 	error ("No function contains the specified address");
@@ -5568,7 +5568,7 @@ until_break_command (char *arg, int from
     error ("Couldn't get information on specified line.");
 
   sal = sals.sals[0];
-  free ((PTR) sals.sals);	/* malloc'd, so freed */
+  xfree (sals.sals);	/* malloc'd, so freed */
 
   if (*arg)
     error ("Junk at end of arguments.");
@@ -6309,7 +6309,7 @@ handle_gnu_4_16_catch_command (char *arg
       warning ("Multiple breakpoints were set.");
       warning ("Use the \"delete\" command to delete unwanted breakpoints.");
     }
-  free ((PTR) sals.sals);
+  xfree (sals.sals);
 }
 
 #if 0
@@ -6644,7 +6644,7 @@ clear_command (char *arg, int from_tty)
       if (from_tty)
 	putchar_unfiltered ('\n');
     }
-  free ((PTR) sals.sals);
+  xfree (sals.sals);
 }
 
 /* Delete breakpoint in BS if they are `delete' breakpoints and
@@ -6803,25 +6803,25 @@ delete_breakpoint (struct breakpoint *bp
 
   free_command_lines (&bpt->commands);
   if (bpt->cond)
-    free (bpt->cond);
+    xfree (bpt->cond);
   if (bpt->cond_string != NULL)
-    free (bpt->cond_string);
+    xfree (bpt->cond_string);
   if (bpt->addr_string != NULL)
-    free (bpt->addr_string);
+    xfree (bpt->addr_string);
   if (bpt->exp != NULL)
-    free (bpt->exp);
+    xfree (bpt->exp);
   if (bpt->exp_string != NULL)
-    free (bpt->exp_string);
+    xfree (bpt->exp_string);
   if (bpt->val != NULL)
     value_free (bpt->val);
   if (bpt->source_file != NULL)
-    free (bpt->source_file);
+    xfree (bpt->source_file);
   if (bpt->dll_pathname != NULL)
-    free (bpt->dll_pathname);
+    xfree (bpt->dll_pathname);
   if (bpt->triggered_dll_pathname != NULL)
-    free (bpt->triggered_dll_pathname);
+    xfree (bpt->triggered_dll_pathname);
   if (bpt->exec_pathname != NULL)
-    free (bpt->exec_pathname);
+    xfree (bpt->exec_pathname);
 
   /* Be sure no bpstat's are pointing at it after it's been freed.  */
   /* FIXME, how can we find all bpstat's?
@@ -6843,7 +6843,7 @@ delete_breakpoint (struct breakpoint *bp
      bp, we mark it as deleted before freeing its storage. */
   bpt->type = bp_none;
 
-  free ((PTR) bpt);
+  xfree (bpt);
 }
 
 static void
@@ -6953,7 +6953,7 @@ breakpoint_re_set_one (PTR bint)
 	    {
 	      s = b->cond_string;
 	      if (b->cond)
-		free ((PTR) b->cond);
+		xfree (b->cond);
 	      b->cond = parse_exp_1 (&s, block_for_pc (sals.sals[i].pc), 0);
 	    }
 
@@ -6972,7 +6972,7 @@ breakpoint_re_set_one (PTR bint)
 	    )
 	    {
 	      if (b->source_file != NULL)
-		free (b->source_file);
+		xfree (b->source_file);
 	      if (sals.sals[i].symtab == NULL)
 		b->source_file = NULL;
 	      else
@@ -7001,7 +7001,7 @@ breakpoint_re_set_one (PTR bint)
 	  check_duplicates (b->address, b->section);
 
 	}
-      free ((PTR) sals.sals);
+      xfree (sals.sals);
       break;
 
     case bp_watchpoint:
@@ -7019,7 +7019,7 @@ breakpoint_re_set_one (PTR bint)
 
       /* So for now, just use a global context.  */
       if (b->exp)
-	free ((PTR) b->exp);
+	xfree (b->exp);
       b->exp = parse_expression (b->exp_string);
       b->exp_valid_block = innermost_block;
       mark = value_mark ();
@@ -7034,7 +7034,7 @@ breakpoint_re_set_one (PTR bint)
 	{
 	  s = b->cond_string;
 	  if (b->cond)
-	    free ((PTR) b->cond);
+	    xfree (b->cond);
 	  b->cond = parse_exp_1 (&s, (struct block *) 0, 0);
 	}
       if (b->enable == enabled)
Index: buildsym.c
===================================================================
RCS file: /cvs/src/src/gdb/buildsym.c,v
retrieving revision 1.6
diff -u -p -r1.6 buildsym.c
--- buildsym.c	2000/07/30 01:48:24	1.6
+++ buildsym.c	2000/12/14 22:55:51
@@ -171,7 +171,7 @@ really_free_pendings (PTR dummy)
   for (next = free_pendings; next; next = next1)
     {
       next1 = next->next;
-      free ((void *) next);
+      xfree ((void *) next);
     }
   free_pendings = NULL;
 
@@ -180,14 +180,14 @@ really_free_pendings (PTR dummy)
   for (next = file_symbols; next != NULL; next = next1)
     {
       next1 = next->next;
-      free ((void *) next);
+      xfree ((void *) next);
     }
   file_symbols = NULL;
 
   for (next = global_symbols; next != NULL; next = next1)
     {
       next1 = next->next;
-      free ((void *) next);
+      xfree ((void *) next);
     }
   global_symbols = NULL;
 }
@@ -205,7 +205,7 @@ free_pending_blocks (void)
   for (bnext = pending_blocks; bnext; bnext = bnext1)
     {
       bnext1 = bnext->next;
-      free ((void *) bnext);
+      xfree ((void *) bnext);
     }
 #endif
   pending_blocks = NULL;
@@ -486,7 +486,7 @@ make_blockvector (struct objfile *objfil
   for (next = pending_blocks; next; next = next1)
     {
       next1 = next->next;
-      free (next);
+      xfree (next);
     }
 #endif
   pending_blocks = NULL;
@@ -684,7 +684,7 @@ pop_subfile (void)
     }
   name = link->name;
   subfile_stack = link->next;
-  free ((void *) link);
+  xfree ((void *) link);
   return (name);
 }
 
@@ -993,23 +993,23 @@ end_symtab (CORE_ADDR end_addr, struct o
 	}
       if (subfile->name != NULL)
 	{
-	  free ((void *) subfile->name);
+	  xfree ((void *) subfile->name);
 	}
       if (subfile->dirname != NULL)
 	{
-	  free ((void *) subfile->dirname);
+	  xfree ((void *) subfile->dirname);
 	}
       if (subfile->line_vector != NULL)
 	{
-	  free ((void *) subfile->line_vector);
+	  xfree ((void *) subfile->line_vector);
 	}
       if (subfile->debugformat != NULL)
 	{
-	  free ((void *) subfile->debugformat);
+	  xfree ((void *) subfile->debugformat);
 	}
 
       nextsub = subfile->next;
-      free ((void *) subfile);
+      xfree ((void *) subfile);
     }
 
   /* Set this for the main source file.  */
Index: c-typeprint.c
===================================================================
RCS file: /cvs/src/src/gdb/c-typeprint.c,v
retrieving revision 1.3
diff -u -p -r1.3 c-typeprint.c
--- c-typeprint.c	2000/09/04 08:29:25	1.3
+++ c-typeprint.c	2000/12/14 22:55:54
@@ -995,15 +995,15 @@ c_type_print_base (struct type *type, st
 			  strncpy (demangled_no_static, demangled_no_class, length);
 			  *(demangled_no_static + length) = '\0';
 			  fputs_filtered (demangled_no_static, stream);
-			  free (demangled_no_static);
+			  xfree (demangled_no_static);
 			}
 		      else
 			fputs_filtered (demangled_no_class, stream);
-		      free (demangled_name);
+		      xfree (demangled_name);
 		    }
 
 		  if (TYPE_FN_FIELD_STUB (f, j))
-		    free (mangled_name);
+		    xfree (mangled_name);
 
 		  fprintf_filtered (stream, ";\n");
 		}
Index: coffread.c
===================================================================
RCS file: /cvs/src/src/gdb/coffread.c,v
retrieving revision 1.13
diff -u -p -r1.13 coffread.c
--- coffread.c	2000/12/04 04:01:15	1.13
+++ coffread.c	2000/12/14 22:56:00
@@ -296,7 +296,7 @@ coff_locate_sections (bfd *abfd, asectio
 	  /* This will be run after coffstab_build_psymtabs is called
 	     in coff_symfile_read, at which point we no longer need
 	     the information.  */
-	  make_cleanup (free, n);
+	  make_cleanup (xfree, n);
 	}
     }
 }
@@ -442,7 +442,7 @@ static void
 complete_symtab (char *name, CORE_ADDR start_addr, unsigned int size)
 {
   if (last_source_file != NULL)
-    free (last_source_file);
+    xfree (last_source_file);
   last_source_file = savestring (name, strlen (name));
   current_source_start_addr = start_addr;
   current_source_end_addr = start_addr + size;
@@ -774,7 +774,7 @@ coff_symtab_read (long symtab_offset, un
   memset (opaque_type_chain, 0, sizeof opaque_type_chain);
 
   if (type_vector)		/* Get rid of previous one */
-    free ((PTR) type_vector);
+    xfree (type_vector);
   type_vector_length = 160;
   type_vector = (struct type **)
     xmalloc (type_vector_length * sizeof (struct type *));
@@ -1243,7 +1243,7 @@ static void
 free_stringtab (void)
 {
   if (stringtab)
-    free (stringtab);
+    xfree (stringtab);
   stringtab = NULL;
 }
 
@@ -1345,7 +1345,7 @@ static void
 free_linetab (void)
 {
   if (linetab)
-    free (linetab);
+    xfree (linetab);
   linetab = NULL;
 }
 
@@ -1413,7 +1413,7 @@ patch_type (struct type *type, struct ty
   if (TYPE_NAME (real_target))
     {
       if (TYPE_NAME (target))
-	free (TYPE_NAME (target));
+	xfree (TYPE_NAME (target));
       TYPE_NAME (target) = concat (TYPE_NAME (real_target), NULL);
     }
 }
Index: completer.c
===================================================================
RCS file: /cvs/src/src/gdb/completer.c,v
retrieving revision 1.1
diff -u -p -r1.1 completer.c
--- completer.c	2000/12/01 00:41:27	1.1
+++ completer.c	2000/12/14 22:56:00
@@ -139,7 +139,7 @@ extern char *filename_completion_functio
 	    q = xmalloc (strlen (p) + 5);
 	    strcpy (q, p + (word - text));
 	    return_val[return_val_used++] = q;
-	    free (p);
+	    xfree (p);
 	  }
 	else
 	  {
@@ -149,7 +149,7 @@ extern char *filename_completion_functio
 	    q[text - word] = '\0';
 	    strcat (q, p);
 	    return_val[return_val_used++] = q;
-	    free (p);
+	    xfree (p);
 	  }
       }
     }
@@ -228,7 +228,7 @@ line_completion_function (char *text, in
 	{
 	  /* Free the storage used by LIST, but not by the strings inside.
 	     This is because rl_complete_internal () frees the strings. */
-	  free ((PTR) list);
+	  xfree (list);
 	}
       list = 0;
       index = 0;
Index: convex-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/convex-tdep.c,v
retrieving revision 1.2
diff -u -p -r1.2 convex-tdep.c
--- convex-tdep.c	2000/02/09 08:52:45	1.2
+++ convex-tdep.c	2000/12/14 22:56:01
@@ -114,7 +114,7 @@
 /* OBSOLETE      Mark text segment as empty.  *x/ */
 /* OBSOLETE  */
 /* OBSOLETE   if (execfile) */
-/* OBSOLETE     free (execfile); */
+/* OBSOLETE     xfree (execfile); */
 /* OBSOLETE   execfile = 0; */
 /* OBSOLETE   data_start = 0; */
 /* OBSOLETE   data_end = 0; */
@@ -133,7 +133,7 @@
 /* OBSOLETE   if (filename) */
 /* OBSOLETE     { */
 /* OBSOLETE       filename = tilde_expand (filename); */
-/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE       make_cleanup (xfree, filename); */
 /* OBSOLETE        */
 /* OBSOLETE       execchan = openp (getenv ("PATH"), 1, filename, O_RDONLY, 0, */
 /* OBSOLETE                     &execfile); */
Index: convex-xdep.c
===================================================================
RCS file: /cvs/src/src/gdb/convex-xdep.c,v
retrieving revision 1.2
diff -u -p -r1.2 convex-xdep.c
--- convex-xdep.c	2000/02/09 08:52:45	1.2
+++ convex-xdep.c	2000/12/14 22:56:01
@@ -806,7 +806,7 @@
 /* OBSOLETE      and mark data and stack spaces as empty.  *x/ */
 /* OBSOLETE  */
 /* OBSOLETE   if (corefile) */
-/* OBSOLETE     free (corefile); */
+/* OBSOLETE     xfree (corefile); */
 /* OBSOLETE   corefile = 0; */
 /* OBSOLETE  */
 /* OBSOLETE   if (corechan >= 0) */
@@ -824,7 +824,7 @@
 /* OBSOLETE   if (filename) */
 /* OBSOLETE     { */
 /* OBSOLETE       filename = tilde_expand (filename); */
-/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE       make_cleanup (xfree, filename); */
 /* OBSOLETE        */
 /* OBSOLETE       if (have_inferior_p ()) */
 /* OBSOLETE     error ("To look at a core file, you must kill the program with \"kill\"."); */
Index: corefile.c
===================================================================
RCS file: /cvs/src/src/gdb/corefile.c,v
retrieving revision 1.8
diff -u -p -r1.8 corefile.c
--- corefile.c	2000/12/01 00:41:27	1.8
+++ corefile.c	2000/12/14 22:56:02
@@ -91,7 +91,7 @@ core_file_command (char *filename, int f
 	      {
 		char *symfile_copy = xstrdup (symfile);
 
-		make_cleanup (free, symfile_copy);
+		make_cleanup (xfree, symfile_copy);
 		symbol_file_command (symfile_copy, from_tty);
 	      }
 	    else
@@ -183,7 +183,7 @@ reopen_exec_file (void)
 
   /* If the timestamp of the exec file has changed, reopen it. */
   filename = xstrdup (bfd_get_filename (exec_bfd));
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
   mtime = bfd_get_mtime (exec_bfd);
   res = stat (filename, &st);
 
@@ -397,7 +397,7 @@ void
 set_gnutarget (char *newtarget)
 {
   if (gnutarget_string != NULL)
-    free (gnutarget_string);
+    xfree (gnutarget_string);
   gnutarget_string = savestring (newtarget, strlen (newtarget));
   set_gnutarget_command (NULL, 0, NULL);
 }
Index: corelow.c
===================================================================
RCS file: /cvs/src/src/gdb/corelow.c,v
retrieving revision 1.10
diff -u -p -r1.10 corelow.c
--- corelow.c	2000/10/23 22:49:28	1.10
+++ corelow.c	2000/12/14 22:56:03
@@ -194,11 +194,11 @@ core_close (int quitting)
       if (!bfd_close (core_bfd))
 	warning ("cannot close \"%s\": %s",
 		 name, bfd_errmsg (bfd_get_error ()));
-      free (name);
+      xfree (name);
       core_bfd = NULL;
       if (core_ops.to_sections)
 	{
-	  free ((PTR) core_ops.to_sections);
+	  xfree (core_ops.to_sections);
 	  core_ops.to_sections = NULL;
 	  core_ops.to_sections_end = NULL;
 	}
@@ -273,11 +273,11 @@ core_open (char *filename, int from_tty)
   if (filename[0] != '/')
     {
       temp = concat (current_directory, "/", filename, NULL);
-      free (filename);
+      xfree (filename);
       filename = temp;
     }
 
-  old_chain = make_cleanup (free, filename);
+  old_chain = make_cleanup (xfree, filename);
 
   scratch_chan = open (filename, O_BINARY | ( write_files ? O_RDWR : O_RDONLY ), 0);
   if (scratch_chan < 0)
Index: cp-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-valprint.c,v
retrieving revision 1.5
diff -u -p -r1.5 cp-valprint.c
--- cp-valprint.c	2000/09/01 23:43:26	1.5
+++ cp-valprint.c	2000/12/14 22:56:03
@@ -152,7 +152,7 @@ common:
       else
 	{
 	  fputs_filtered (demangled_name, stream);
-	  free (demangled_name);
+	  xfree (demangled_name);
 	}
     }
   else
@@ -793,5 +793,5 @@ _initialize_cp_valprint (void)
   obstack_begin (&dont_print_vb_obstack, 32 * sizeof (struct type *));
   obstack_specify_allocation (&dont_print_statmem_obstack,
 			      32 * sizeof (CORE_ADDR), sizeof (CORE_ADDR),
-			      xmalloc, free);
+			      xmalloc, xfree);
 }
Index: cxux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/cxux-nat.c,v
retrieving revision 1.5
diff -u -p -r1.5 cxux-nat.c
--- cxux-nat.c	2000/08/13 01:22:17	1.5
+++ cxux-nat.c	2000/12/14 22:56:03
@@ -386,7 +386,7 @@ add_shared_symbol_files (void)
 	      section_addrs.other[0].addr = lms.l_addr;
               section_addrs.other[0].name = ".text";
 	      symbol_file_add (path_name, 1, &section_addrs, 0, 0);
-	      free (path_name);
+	      xfree (path_name);
 	    }
 	}
       /* traverse links in reverse order so that we get the
Index: d10v-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/d10v-tdep.c,v
retrieving revision 1.12
diff -u -p -r1.12 d10v-tdep.c
--- d10v-tdep.c	2000/09/01 23:45:13	1.12
+++ d10v-tdep.c	2000/12/14 22:56:04
@@ -986,8 +986,8 @@ pop_stack_item (struct stack_item *si)
 {
   struct stack_item *dead = si;
   si = si->prev;
-  free (dead->data);
-  free (dead);
+  xfree (dead->data);
+  xfree (dead);
   return si;
 }
 
@@ -1346,7 +1346,7 @@ d10v_eva_get_trace_data (void)
   oldsize = trace_data.size;
   trace_data.size += count;
 
-  free (tmpspace);
+  xfree (tmpspace);
 
   if (trace_display)
     display_trace (oldsize, trace_data.size);
Index: d30v-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/d30v-tdep.c,v
retrieving revision 1.5
diff -u -p -r1.5 d30v-tdep.c
--- d30v-tdep.c	2000/08/13 01:22:17	1.5
+++ d30v-tdep.c	2000/12/14 22:56:05
@@ -1221,7 +1221,7 @@ d30v_eva_get_trace_data (void)
   oldsize = trace_data.size;
   trace_data.size += count;
 
-  free (tmpspace);
+  xfree (tmpspace);
 
   if (trace_display)
     display_trace (oldsize, trace_data.size);
Index: dbxread.c
===================================================================
RCS file: /cvs/src/src/gdb/dbxread.c,v
retrieving revision 1.10
diff -u -p -r1.10 dbxread.c
--- dbxread.c	2000/12/08 19:59:25	1.10
+++ dbxread.c	2000/12/14 22:56:07
@@ -323,7 +323,7 @@ free_header_files (void)
 {
   if (this_object_header_files)
     {
-      free ((PTR) this_object_header_files);
+      xfree (this_object_header_files);
       this_object_header_files = NULL;
     }
   n_allocated_this_object_header_files = 0;
@@ -767,10 +767,10 @@ dbx_symfile_finish (struct objfile *objf
 
 	  while (--i >= 0)
 	    {
-	      free (hfiles[i].name);
-	      free (hfiles[i].vector);
+	      xfree (hfiles[i].name);
+	      xfree (hfiles[i].vector);
 	    }
-	  free ((PTR) hfiles);
+	  xfree (hfiles);
 	}
       mfree (objfile->md, objfile->sym_stab_info);
     }
@@ -1093,7 +1093,7 @@ read_dbx_dynamic_symtab (struct objfile 
     return;
 
   dynsyms = (asymbol **) xmalloc (dynsym_size);
-  back_to = make_cleanup (free, dynsyms);
+  back_to = make_cleanup (xfree, dynsyms);
 
   dynsym_count = bfd_canonicalize_dynamic_symtab (abfd, dynsyms);
   if (dynsym_count < 0)
@@ -1156,7 +1156,7 @@ read_dbx_dynamic_symtab (struct objfile 
     }
 
   dynrels = (arelent **) xmalloc (dynrel_size);
-  make_cleanup (free, dynrels);
+  make_cleanup (xfree, dynrels);
 
   dynrel_count = bfd_canonicalize_dynamic_reloc (abfd, dynrels, dynsyms);
   if (dynrel_count < 0)
Index: dcache.c
===================================================================
RCS file: /cvs/src/src/gdb/dcache.c,v
retrieving revision 1.10
diff -u -p -r1.10 dcache.c
--- dcache.c	2000/11/03 22:00:56	1.10
+++ dcache.c	2000/12/14 22:56:07
@@ -435,8 +435,8 @@ dcache_free (DCACHE *dcache)
   if (last_cache == dcache)
     last_cache = NULL;
 
-  free (dcache->the_cache);
-  free (dcache);
+  xfree (dcache->the_cache);
+  xfree (dcache);
 }
 
 /* Read or write LEN bytes from inferior memory at MEMADDR, transferring
Index: defs.h
===================================================================
RCS file: /cvs/src/src/gdb/defs.h,v
retrieving revision 1.32
diff -u -p -r1.32 defs.h
--- defs.h	2000/11/20 02:06:18	1.32
+++ defs.h	2000/12/14 22:56:08
@@ -367,6 +367,8 @@ extern void free_current_contents (void 
 
 extern void null_cleanup (void *);
 
+extern void xfree (void *);
+
 extern int myread (int, char *, int);
 
 extern int query (char *, ...) ATTR_FORMAT (printf, 1, 2);
Index: demangle.c
===================================================================
RCS file: /cvs/src/src/gdb/demangle.c,v
retrieving revision 1.4
diff -u -p -r1.4 demangle.c
--- demangle.c	2000/11/14 16:46:24	1.4
+++ demangle.c	2000/12/14 22:56:08
@@ -109,7 +109,7 @@ set_demangling_command (char *ignore, in
 			     dem->demangling_style_doc);
 	  if (dem->demangling_style == current_demangling_style)
 	    {
-	      free (current_demangling_style_string);
+	      xfree (current_demangling_style_string);
 	      current_demangling_style_string =
 		savestring (dem->demangling_style_name,
 			    strlen (dem->demangling_style_name));
@@ -138,7 +138,7 @@ set_demangling_style (char *style)
 {
   if (current_demangling_style_string != NULL)
     {
-      free (current_demangling_style_string);
+      xfree (current_demangling_style_string);
     }
   current_demangling_style_string = savestring (style, strlen (style));
   set_demangling_command ((char *) NULL, 0, (struct cmd_list_element *) NULL);
Index: dstread.c
===================================================================
RCS file: /cvs/src/src/gdb/dstread.c,v
retrieving revision 1.5
diff -u -p -r1.5 dstread.c
--- dstread.c	2000/08/23 16:37:23	1.5
+++ dstread.c	2000/12/14 22:56:09
@@ -107,7 +107,7 @@ dst_start_symtab (void)
   /* Initialize the source file line number information for this file.  */
 
   if (line_vector)		/* Unlikely, but maybe possible? */
-    free ((PTR) line_vector);
+    xfree (line_vector);
   line_vector_index = 0;
   line_vector_length = 1000;
   prev_line_number = -2;	/* Force first line number to be explicit */
@@ -861,13 +861,13 @@ decode_dst_structure (struct objfile *ob
   type = find_dst_structure (name);
   if (type)
     {
-      free ((PTR) name);
+      xfree (name);
       return type;
     }
   type = create_new_type (objfile);
   TYPE_NAME (type) = obstack_copy0 (&objfile->symbol_obstack,
 				    name, strlen (name));
-  free ((PTR) name);
+  xfree (name);
   TYPE_CODE (type) = code;
   TYPE_LENGTH (type) = DST_record (entry).size;
   TYPE_NFIELDS (type) = DST_record (entry).nfields;
@@ -1401,7 +1401,7 @@ process_dst_block (struct objfile *objfi
 
       block->sym[symnum] = symlist->symbol;
 
-      free ((PTR) symlist);
+      xfree (symlist);
       symlist = nextsym;
       symnum++;
     }
@@ -1497,7 +1497,7 @@ read_dst_symtab (struct objfile *objfile
 	      global_block->sym[symnum] =
 		dst_global_symbols->symbol;
 
-	      free ((PTR) dst_global_symbols);
+	      xfree (dst_global_symbols);
 	      dst_global_symbols = nextsym;
 	    }
 	  dst_global_symbols = NULL;
@@ -1534,7 +1534,7 @@ read_dst_symtab (struct objfile *objfile
     {
       element = struct_list;
       struct_list = element->next;
-      free ((PTR) element);
+      xfree (element);
     }
 }
 
Index: dve3900-rom.c
===================================================================
RCS file: /cvs/src/src/gdb/dve3900-rom.c,v
retrieving revision 1.4
diff -u -p -r1.4 dve3900-rom.c
--- dve3900-rom.c	2000/07/30 01:48:25	1.4
+++ dve3900-rom.c	2000/12/14 22:56:09
@@ -833,7 +833,7 @@ load_section (bfd *abfd, asection *s, un
       buffer = (unsigned char *) xmalloc (section_size);
       bfd_get_section_contents (abfd, s, buffer, 0, section_size);
       process_read_request (buffer, section_size);
-      free (buffer);
+      xfree (buffer);
     }
 }
 
Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.19
diff -u -p -r1.19 dwarf2read.c
--- dwarf2read.c	2000/12/08 20:12:36	1.19
+++ dwarf2read.c	2000/12/14 22:56:12
@@ -1739,7 +1739,7 @@ dwarf2_add_field (struct field_info *fip
 
   /* Allocate a new field list entry and link it in.  */
   new_field = (struct nextfield *) xmalloc (sizeof (struct nextfield));
-  make_cleanup (free, new_field);
+  make_cleanup (xfree, new_field);
   memset (new_field, 0, sizeof (struct nextfield));
   new_field->next = fip->fields;
   fip->fields = new_field;
@@ -2026,7 +2026,7 @@ dwarf2_add_member_fn (struct field_info 
   /* Create a new member function field and chain it to the field list
      entry. */
   new_fnfield = (struct nextfnfield *) xmalloc (sizeof (struct nextfnfield));
-  make_cleanup (free, new_fnfield);
+  make_cleanup (xfree, new_fnfield);
   memset (new_fnfield, 0, sizeof (struct nextfnfield));
   new_fnfield->next = flp->head;
   flp->head = new_fnfield;
@@ -2386,7 +2386,7 @@ read_enumeration (struct die_info *die, 
 	    TYPE_ALLOC (type, sizeof (struct field) * num_fields);
 	  memcpy (TYPE_FIELDS (type), fields,
 		  sizeof (struct field) * num_fields);
-	  free (fields);
+	  xfree (fields);
 	}
       if (unsigned_enum)
 	TYPE_FLAGS (type) |= TYPE_FLAG_UNSIGNED;
@@ -2949,8 +2949,8 @@ free_die_list (struct die_info *dies)
   while (die)
     {
       next = die->next;
-      free (die->attrs);
-      free (die);
+      xfree (die->attrs);
+      xfree (die);
       die = next;
     }
 }
@@ -3083,8 +3083,8 @@ dwarf2_empty_abbrev_table (PTR ignore)
       while (abbrev)
 	{
 	  next = abbrev->next;
-	  free (abbrev->attrs);
-	  free (abbrev);
+	  xfree (abbrev->attrs);
+	  xfree (abbrev);
 	  abbrev = next;
 	}
       dwarf2_abbrevs[i] = NULL;
@@ -4064,11 +4064,11 @@ dwarf2_start_subfile (char *filename, ch
 	  if (STREQ (subfile->name, fullname))
 	    {
 	      current_subfile = subfile;
-	      free (fullname);
+	      xfree (fullname);
 	      return;
 	    }
 	}
-      free (fullname);
+      xfree (fullname);
     }
   start_subfile (filename, dirname);
 }
Index: dwarfread.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarfread.c,v
retrieving revision 1.4
diff -u -p -r1.4 dwarfread.c
--- dwarfread.c	2000/12/04 04:01:15	1.4
+++ dwarfread.c	2000/12/14 22:56:14
@@ -696,10 +696,10 @@ dwarf_build_psymtabs (struct objfile *ob
   if ((bfd_seek (abfd, dbfoff, SEEK_SET) != 0) ||
       (bfd_read (dbbase, dbsize, 1, abfd) != dbsize))
     {
-      free (dbbase);
+      xfree (dbbase);
       error ("can't read DWARF data from '%s'", bfd_get_filename (abfd));
     }
-  back_to = make_cleanup (free, dbbase);
+  back_to = make_cleanup (xfree, dbbase);
 
   /* If we are reinitializing, or if we have never loaded syms yet, init.
      Since we have no idea how many DIES we are looking at, we just guess
@@ -869,7 +869,7 @@ alloc_utype (DIE_REF die_ref, struct typ
 static void
 free_utypes (PTR dummy)
 {
-  free (utypes);
+  xfree (utypes);
   utypes = NULL;
   numutypes = 0;
 }
@@ -2265,10 +2265,10 @@ read_ofile_symtab (struct partial_symtab
   if (bfd_seek (abfd, foffset, SEEK_SET) ||
       (bfd_read (dbbase, dbsize, 1, abfd) != dbsize))
     {
-      free (dbbase);
+      xfree (dbbase);
       error ("can't read DWARF data");
     }
-  back_to = make_cleanup (free, dbbase);
+  back_to = make_cleanup (xfree, dbbase);
 
   /* If there is a line number table associated with this compilation unit
      then read the size of this fragment in bytes, from the fragment itself.
@@ -2290,10 +2290,10 @@ read_ofile_symtab (struct partial_symtab
       if (bfd_seek (abfd, LNFOFF (pst), SEEK_SET) ||
 	  (bfd_read (lnbase, lnsize, 1, abfd) != lnsize))
 	{
-	  free (lnbase);
+	  xfree (lnbase);
 	  error ("can't read DWARF line numbers");
 	}
-      make_cleanup (free, lnbase);
+      make_cleanup (xfree, lnbase);
     }
 
   process_dies (dbbase, dbbase + dbsize, pst->objfile);
Index: elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.12
diff -u -p -r1.12 elfread.c
--- elfread.c	2000/12/04 15:55:09	1.12
+++ elfread.c	2000/12/14 22:56:14
@@ -249,7 +249,7 @@ elf_symtab_read (struct objfile *objfile
   if (storage_needed > 0)
     {
       symbol_table = (asymbol **) xmalloc (storage_needed);
-      back_to = make_cleanup (free, symbol_table);
+      back_to = make_cleanup (xfree, symbol_table);
       if (dynamic)
 	number_of_symbols = bfd_canonicalize_dynamic_symtab (objfile->obfd,
 							     symbol_table);
Index: environ.c
===================================================================
RCS file: /cvs/src/src/gdb/environ.c,v
retrieving revision 1.2
diff -u -p -r1.2 environ.c
--- environ.c	2000/07/30 01:48:25	1.2
+++ environ.c	2000/12/14 22:56:14
@@ -48,9 +48,9 @@ free_environ (register struct environ *e
   register char **vector = e->vector;
 
   while (*vector)
-    free (*vector++);
+    xfree (*vector++);
 
-  free (e);
+  xfree (e);
 }
 
 /* Copy the environment given to this process into E.
@@ -137,7 +137,7 @@ set_in_environ (struct environ *e, const
       vector[i + 1] = 0;
     }
   else
-    free (s);
+    xfree (s);
 
   s = (char *) xmalloc (len + strlen (value) + 2);
   strcpy (s, var);
@@ -171,7 +171,7 @@ unset_in_environ (struct environ *e, cha
     {
       if (STREQN (s, var, len) && s[len] == '=')
 	{
-	  free (s);
+	  xfree (s);
 	  /* Walk through the vector, shuffling args down by one, including
 	     the NULL terminator.  Can't use memcpy() here since the regions
 	     overlap, and memmove() might not be available. */
Index: event-loop.c
===================================================================
RCS file: /cvs/src/src/gdb/event-loop.c,v
retrieving revision 1.8
diff -u -p -r1.8 event-loop.c
--- event-loop.c	2000/09/01 23:52:09	1.8
+++ event-loop.c	2000/12/14 22:56:16
@@ -377,7 +377,7 @@ process_event (void)
 	  if (event_ptr->next_event == NULL)
 	    event_queue.last_event = prev_ptr;
 	}
-      free ((char *) event_ptr);
+      xfree (event_ptr);
 
       /* Now call the procedure associated with the event. */
       (*proc) (fd);
@@ -620,7 +620,7 @@ delete_file_handler (int fd)
 	      j++;
 	    }
 	}
-      free (gdb_notifier.poll_fds);
+      xfree (gdb_notifier.poll_fds);
       gdb_notifier.poll_fds = new_poll_fds;
       gdb_notifier.num_fds--;
 #else
@@ -668,7 +668,7 @@ delete_file_handler (int fd)
 	;
       prev_ptr->next_file = file_ptr->next_file;
     }
-  free ((char *) file_ptr);
+  xfree (file_ptr);
 }
 
 /* Handle the given event by calling the procedure associated to the
@@ -973,7 +973,7 @@ delete_async_signal_handler (async_signa
       if (sighandler_list.last_handler == (*async_handler_ptr))
 	sighandler_list.last_handler = prev_ptr;
     }
-  free ((char *) (*async_handler_ptr));
+  xfree ((*async_handler_ptr));
   (*async_handler_ptr) = NULL;
 }
 
@@ -1080,7 +1080,7 @@ delete_timer (int id)
 	;
       prev_timer->next = timer_ptr->next;
     }
-  free ((char *) timer_ptr);
+  xfree (timer_ptr);
 
   gdb_notifier.timeout_valid = 0;
 }
@@ -1111,7 +1111,7 @@ handle_timer_event (int dummy)
       timer_ptr = timer_ptr->next;
       /* Call the procedure associated with that timer. */
       (*saved_timer->proc) (saved_timer->client_data);
-      free (saved_timer);
+      xfree (saved_timer);
     }
 
   gdb_notifier.timeout_valid = 0;
Index: event-top.c
===================================================================
RCS file: /cvs/src/src/gdb/event-top.c,v
retrieving revision 1.9
diff -u -p -r1.9 event-top.c
--- event-top.c	2000/09/01 23:53:02	1.9
+++ event-top.c	2000/12/14 22:56:16
@@ -393,13 +393,13 @@ pop_prompt (void)
        in effect, until the user does another 'set prompt'. */
     if (strcmp (PROMPT (0), PROMPT (-1)))
       {
-	free (PROMPT (-1));
+	xfree (PROMPT (-1));
 	PROMPT (-1) = savestring (PROMPT (0), strlen (PROMPT (0)));
       }
 
-  free (PREFIX (0));
-  free (PROMPT (0));
-  free (SUFFIX (0));
+  xfree (PREFIX (0));
+  xfree (PROMPT (0));
+  xfree (SUFFIX (0));
   the_prompts.top--;
 }
 
@@ -643,7 +643,7 @@ command_line_handler (char *rl)
     {
       strcpy (linebuffer, readline_input_state.linebuffer);
       p = readline_input_state.linebuffer_ptr;
-      free (readline_input_state.linebuffer);
+      xfree (readline_input_state.linebuffer);
       more_to_come = 0;
       pop_prompt ();
     }
@@ -690,7 +690,7 @@ command_line_handler (char *rl)
   while (*p1)
     *p++ = *p1++;
 
-  free (rl);			/* Allocated in readline.  */
+  xfree (rl);			/* Allocated in readline.  */
 
   if (*(p - 1) == '\\')
     {
@@ -749,7 +749,7 @@ command_line_handler (char *rl)
 	  /* If there was an error, call this function again.  */
 	  if (expanded < 0)
 	    {
-	      free (history_value);
+	      xfree (history_value);
 	      return;
 	    }
 	  if (strlen (history_value) > linelength)
@@ -759,7 +759,7 @@ command_line_handler (char *rl)
 	    }
 	  strcpy (linebuffer, history_value);
 	  p = linebuffer + strlen (linebuffer);
-	  free (history_value);
+	  xfree (history_value);
 	}
     }
 
@@ -868,7 +868,7 @@ gdb_readline2 (gdb_client_data client_da
 	       if we are called again fgetc will still return EOF and
 	       we'll return NULL then.  */
 	    break;
-	  free (result);
+	  xfree (result);
 	  (*input_handler) (0);
 	}
 
Index: exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.7
diff -u -p -r1.7 exec.c
--- exec.c	2000/12/01 00:41:27	1.7
+++ exec.c	2000/12/14 22:56:17
@@ -126,7 +126,7 @@ exec_close (int quitting)
          FIXME-as-well: free_objfile already free'd vp->name, so it isn't
          valid here.  */
       free_named_symtabs (vp->name);
-      free (vp);
+      xfree (vp);
     }
 
   vmap = NULL;
@@ -138,13 +138,13 @@ exec_close (int quitting)
       if (!bfd_close (exec_bfd))
 	warning ("cannot close \"%s\": %s",
 		 name, bfd_errmsg (bfd_get_error ()));
-      free (name);
+      xfree (name);
       exec_bfd = NULL;
     }
 
   if (exec_ops.to_sections)
     {
-      free ((PTR) exec_ops.to_sections);
+      xfree (exec_ops.to_sections);
       exec_ops.to_sections = NULL;
       exec_ops.to_sections_end = NULL;
     }
@@ -199,7 +199,7 @@ exec_file_attach (char *args, int from_t
 	error ("No executable file name was specified");
 
       filename = tilde_expand (*argv);
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
 
       scratch_chan = openp (getenv ("PATH"), 1, filename,
 		   write_files ? O_RDWR | O_BINARY : O_RDONLY | O_BINARY, 0,
@@ -226,7 +226,7 @@ exec_file_attach (char *args, int from_t
          via the exec_bfd->name pointer, so we need to make another copy and
          leave exec_bfd as the new owner of the original copy. */
       scratch_pathname = xstrdup (scratch_pathname);
-      make_cleanup (free, scratch_pathname);
+      make_cleanup (xfree, scratch_pathname);
 
       if (!bfd_check_format (exec_bfd, bfd_object))
 	{
@@ -364,7 +364,7 @@ build_section_table (bfd *some_bfd, stru
 
   count = bfd_count_sections (some_bfd);
   if (*start)
-    free ((PTR) * start);
+    xfree (* start);
   *start = (struct section_table *) xmalloc (count * sizeof (**start));
   *end = *start;
   bfd_map_over_sections (some_bfd, add_to_section_table, (char *) end);
Index: f-lang.c
===================================================================
RCS file: /cvs/src/src/gdb/f-lang.c,v
retrieving revision 1.5
diff -u -p -r1.5 f-lang.c
--- f-lang.c	2000/08/11 01:02:35	1.5
+++ f-lang.c	2000/12/14 22:56:18
@@ -635,7 +635,7 @@ add_common_block (char *name, CORE_ADDR 
       STREQ (name, BLANK_COMMON_NAME_MF77))
     {
 
-      free (name);
+      xfree (name);
       name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
       strcpy (name, BLANK_COMMON_NAME_LOCAL);
     }
@@ -809,7 +809,7 @@ patch_all_commons_by_name (char *name, C
   if ((STREQ (name, BLANK_COMMON_NAME_ORIGINAL)) ||
       (STREQ (name, BLANK_COMMON_NAME_MF77)))
     {
-      free (name);
+      xfree (name);
       name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
       strcpy (name, BLANK_COMMON_NAME_LOCAL);
     }
@@ -875,7 +875,7 @@ clear_bf_list (void)
   while (tmp != NULL)
     {
       next = tmp->next;
-      free (tmp);
+      xfree (tmp);
       tmp = next;
     }
   saved_bf_list = NULL;
@@ -946,7 +946,7 @@ clear_function_list (void)
   while (tmp != NULL)
     {
       next = tmp->next;
-      free (tmp);
+      xfree (tmp);
       tmp = next;
     }
 
Index: gdb-events.c
===================================================================
RCS file: /cvs/src/src/gdb/gdb-events.c,v
retrieving revision 1.3
diff -u -p -r1.3 gdb-events.c
--- gdb-events.c	2000/04/03 04:43:26	1.3
+++ gdb-events.c	2000/12/14 22:56:19
@@ -179,7 +179,7 @@ gdb_events_deliver (struct gdb_events *v
     {
       struct event *event = delivering_events;
       delivering_events = event->next;
-      free (event);
+      xfree (event);
     }
   /* Process any pending events.  Because one of the deliveries could
      bail out we move everything off of the pending queue onto an
@@ -206,7 +206,7 @@ gdb_events_deliver (struct gdb_events *v
 	  break;
 	}
       delivering_events = event->next;
-      free (event);
+      xfree (event);
     }
 }
 
Index: gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.48
diff -u -p -r1.48 gdbarch.c
--- gdbarch.c	2000/12/04 04:01:15	1.48
+++ gdbarch.c	2000/12/14 22:56:21
@@ -463,7 +463,7 @@ void
 gdbarch_free (struct gdbarch *arch)
 {
   /* At the moment, this is trivial.  */
-  free (arch);
+  xfree (arch);
 }
 
 
Index: gdbtypes.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtypes.c,v
retrieving revision 1.15
diff -u -p -r1.15 gdbtypes.c
--- gdbtypes.c	2000/11/27 02:18:44	1.15
+++ gdbtypes.c	2000/12/14 22:56:22
@@ -1352,7 +1352,7 @@ cfront_mangle_name (struct type *type, i
 	printf ("add_mangled_type: %s\n", extras.str);	/* FIXME */
       arm_mangled_name = malloc (strlen (mangled_name) + extras.len);
       sprintf (arm_mangled_name, "%s%s", mangled_name, extras.str);
-      free (mangled_name);
+      xfree (mangled_name);
       mangled_name = arm_mangled_name;
     }
 }
@@ -1484,7 +1484,7 @@ check_stub_method (struct type *type, in
       argtypes[argcount] = NULL;	/* Ellist terminator */
     }
 
-  free (demangled_name);
+  xfree (demangled_name);
 
   f = TYPE_FN_FIELDLIST1 (type, method_id);
 
@@ -1835,7 +1835,7 @@ virtual_base_list (struct type *dclass)
   while (tmp_vbase)
     {
       tmp_vbase = tmp_vbase->next;
-      free (tmp_vbase_2);
+      xfree (tmp_vbase_2);
       tmp_vbase_2 = tmp_vbase;
     }
 
Index: gnu-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/gnu-nat.c,v
retrieving revision 1.8
diff -u -p -r1.8 gnu-nat.c
--- gnu-nat.c	2000/10/30 21:50:57	1.8
+++ gnu-nat.c	2000/12/14 22:56:23
@@ -627,7 +627,7 @@ _proc_free (struct proc *proc)
       mach_port_deallocate (mach_task_self (), proc->port);
     }
 
-  free (proc);
+  xfree (proc);
   return next;
 }
 
Index: h8500-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/h8500-tdep.c,v
retrieving revision 1.3
diff -u -p -r1.3 h8500-tdep.c
--- h8500-tdep.c	2000/12/02 11:37:15	1.3
+++ h8500-tdep.c	2000/12/14 22:56:25
@@ -510,7 +510,7 @@ h8500_value_of_trapped_internalvar (stru
   get_saved_register (regbuf, NULL, NULL, selected_frame, regnum, NULL);
   regval |= regbuf[0] << 8 | regbuf[1];		/* XXX host/target byte order */
 
-  free (var->value);		/* Free up old value */
+  xfree (var->value);		/* Free up old value */
 
   var->value = value_from_longest (builtin_type_unsigned_long, regval);
   release_value (var->value);	/* Unchain new value */
Index: hp-psymtab-read.c
===================================================================
RCS file: /cvs/src/src/gdb/hp-psymtab-read.c,v
retrieving revision 1.7
diff -u -p -r1.7 hp-psymtab-read.c
--- hp-psymtab-read.c	2000/10/30 21:50:57	1.7
+++ hp-psymtab-read.c	2000/12/14 22:56:26
@@ -381,7 +381,7 @@ clear_pst_syms (void)
 {
   pst_syms_count = 0;
   pst_syms_size = 0;
-  free (pst_syms_array);
+  xfree (pst_syms_array);
   pst_syms_array = 0;
 }
 
@@ -1025,7 +1025,7 @@ hpread_quick_traverse (struct objfile *o
 	      /* Prepare for the next psymtab. */
 	      global_syms = objfile->global_psymbols.next;
 	      static_syms = objfile->static_psymbols.next;
-	      free (class_entered);
+	      xfree (class_entered);
 
 	      curr_fd++;
 	    }			/* Psymtab for file */
@@ -1254,7 +1254,7 @@ hpread_quick_traverse (struct objfile *o
 	      /* Prepare for the next psymtab. */
 	      global_syms = objfile->global_psymbols.next;
 	      static_syms = objfile->static_psymbols.next;
-	      free (class_entered);
+	      xfree (class_entered);
 
 	      curr_md++;
 	      curr_fd++;
Index: hppah-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/hppah-nat.c,v
retrieving revision 1.5
diff -u -p -r1.5 hppah-nat.c
--- hppah-nat.c	2000/09/02 00:07:32	1.5
+++ hppah-nat.c	2000/12/14 22:56:32
@@ -340,7 +340,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch
 	      /* No, we still fail.  Okay, time to punt. */
 	      if ((pt_status == -1) && errno)
 		{
-		  free (buffer);
+		  xfree (buffer);
 		  return 0;
 		}
 	    }
@@ -356,7 +356,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch
 				   inferior_pid, (PTRACE_ARG3_TYPE) addr, 0);
 	  if (errno)
 	    {
-	      free (buffer);
+	      xfree (buffer);
 	      return 0;
 	    }
 	  QUIT;
@@ -365,7 +365,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch
       /* Copy appropriate bytes out of the buffer.  */
       memcpy (myaddr, (char *) buffer + (memaddr & (sizeof (int) - 1)), len);
     }
-  free (buffer);
+  xfree (buffer);
   return len;
 }
 
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.13
diff -u -p -r1.13 infcmd.c
--- infcmd.c	2000/11/10 19:27:45	1.13
+++ infcmd.c	2000/12/14 22:56:39
@@ -300,7 +300,7 @@ Start it from the beginning? "))
       if (args)
 	{
 	  cmd = concat ("set args ", args, NULL);
-	  make_cleanup (free, cmd);
+	  make_cleanup (xfree, cmd);
 	  execute_command (cmd, from_tty);
 	}
     }
@@ -696,7 +696,7 @@ jump_command (char *arg, int from_tty)
     }
 
   sal = sals.sals[0];
-  free ((PTR) sals.sals);
+  xfree (sals.sals);
 
   if (sal.symtab == 0 && sal.pc == 0)
     error ("No source file has been specified.");
@@ -1375,7 +1375,7 @@ set_environment_command (char *arg, int 
     }
   else
     set_in_environ (inferior_environ, var, val);
-  free (var);
+  xfree (var);
 }
 
 static void
@@ -1423,7 +1423,7 @@ path_command (char *dirname, int from_tt
   exec_path = strsave (env);
   mod_path (dirname, &exec_path);
   set_in_environ (inferior_environ, path_var_name, exec_path);
-  free (exec_path);
+  xfree (exec_path);
   if (from_tty)
     path_info ((char *) NULL, from_tty);
 }
Index: inflow.c
===================================================================
RCS file: /cvs/src/src/gdb/inflow.c,v
retrieving revision 1.3
diff -u -p -r1.3 inflow.c
--- inflow.c	2000/07/30 01:48:25	1.3
+++ inflow.c	2000/12/14 22:56:40
@@ -185,7 +185,7 @@ terminal_init_inferior_with_pgrp (int pg
       /* We could just as well copy our_ttystate (if we felt like adding
          a new function SERIAL_COPY_TTY_STATE).  */
       if (inferior_ttystate)
-	free (inferior_ttystate);
+	xfree (inferior_ttystate);
       inferior_ttystate = SERIAL_GET_TTY_STATE (stdin_serial);
 
 #ifdef PROCESS_GROUP_TYPE
@@ -331,7 +331,7 @@ terminal_ours_1 (int output_only)
 #endif
 
       if (inferior_ttystate)
-	free (inferior_ttystate);
+	xfree (inferior_ttystate);
       inferior_ttystate = SERIAL_GET_TTY_STATE (stdin_serial);
 #ifdef HAVE_TERMIOS
       inferior_process_group = tcgetpgrp (0);
Index: infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.22
diff -u -p -r1.22 infrun.c
--- infrun.c	2000/11/10 19:27:45	1.22
+++ infrun.c	2000/12/14 22:56:43
@@ -646,7 +646,7 @@ follow_vfork (int parent_pid, int child_
       pending_follow.fork_event.saw_child_exec = 0;
       pending_follow.kind = TARGET_WAITKIND_SPURIOUS;
       follow_exec (inferior_pid, pending_follow.execd_pathname);
-      free (pending_follow.execd_pathname);
+      xfree (pending_follow.execd_pathname);
     }
 }
 
@@ -1715,7 +1715,7 @@ handle_inferior_event (struct execution_
 	/* This causes the eventpoints and symbol table to be reset.  Must
 	   do this now, before trying to determine whether to stop. */
 	follow_exec (inferior_pid, pending_follow.execd_pathname);
-	free (pending_follow.execd_pathname);
+	xfree (pending_follow.execd_pathname);
 
 	stop_pc = read_pc_pid (ecs->pid);
 	ecs->saved_inferior_pid = inferior_pid;
@@ -3891,7 +3891,7 @@ xdb_handle_command (char *args, int from
 	  else
 	    printf_filtered ("Invalid signal handling flag.\n");
 	  if (argBuf)
-	    free (argBuf);
+	    xfree (argBuf);
 	}
     }
   do_cleanups (old_chain);
@@ -3982,9 +3982,9 @@ xmalloc_inferior_status (void)
 static void
 free_inferior_status (struct inferior_status *inf_status)
 {
-  free (inf_status->registers);
-  free (inf_status->stop_registers);
-  free (inf_status);
+  xfree (inf_status->registers);
+  xfree (inf_status->stop_registers);
+  xfree (inf_status);
 }
 
 void
Index: infttrace.c
===================================================================
RCS file: /cvs/src/src/gdb/infttrace.c,v
retrieving revision 1.6
diff -u -p -r1.6 infttrace.c
--- infttrace.c	2000/10/24 13:10:18	1.6
+++ infttrace.c	2000/12/14 22:56:46
@@ -686,7 +686,7 @@ clear_thread_info (void)
     {
       q = p;
       p = p->next;
-      free (q);
+      xfree (q);
     }
 
   thread_head.head = NULL;
@@ -698,7 +698,7 @@ clear_thread_info (void)
     {
       q = p;
       p = p->next;
-      free (q);
+      xfree (q);
     }
 
   deleted_threads.head = NULL;
@@ -3868,7 +3868,7 @@ kill_inferior (void)
       t = t->next;
     }
 
-  free (paranoia);
+  xfree (paranoia);
 
   call_ttrace (TT_PROC_STOP,
 	       inferior_pid,
@@ -5336,7 +5336,7 @@ remove_dictionary_entry_of_page (int pid
 
   memory_page_dictionary.page_count--;
 
-  free (page);
+  xfree (page);
 }
 
 
Index: irix5-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/irix5-nat.c,v
retrieving revision 1.9
diff -u -p -r1.9 irix5-nat.c
--- irix5-nat.c	2000/09/11 07:36:07	1.9
+++ irix5-nat.c	2000/12/14 22:56:46
@@ -409,7 +409,7 @@ solib_map_sections (void *arg)
   bfd *abfd;
 
   filename = tilde_expand (so->so_name);
-  old_chain = make_cleanup (free, filename);
+  old_chain = make_cleanup (xfree, filename);
 
   scratch_chan = openp (getenv ("PATH"), 1, filename, O_RDONLY, 0,
 			&scratch_pathname);
@@ -1056,7 +1056,7 @@ clear_solib (void)
     {
       if (so_list_head->sections)
 	{
-	  free ((PTR) so_list_head->sections);
+	  xfree (so_list_head->sections);
 	}
       if (so_list_head->abfd)
 	{
@@ -1071,9 +1071,9 @@ clear_solib (void)
 
       next = so_list_head->next;
       if (bfd_filename)
-	free ((PTR) bfd_filename);
-      free (so_list_head->so_name);
-      free ((PTR) so_list_head);
+	xfree (bfd_filename);
+      xfree (so_list_head->so_name);
+      xfree (so_list_head);
       so_list_head = next;
     }
   debug_base = 0;
Index: jv-typeprint.c
===================================================================
RCS file: /cvs/src/src/gdb/jv-typeprint.c,v
retrieving revision 1.2
diff -u -p -r1.2 jv-typeprint.c
--- jv-typeprint.c	2000/07/30 01:48:26	1.2
+++ jv-typeprint.c	2000/12/14 22:56:47
@@ -122,7 +122,7 @@ java_type_print_base (struct type *type,
 	{			/* array type */
 	  char *name = java_demangle_type_signature (TYPE_TAG_NAME (type));
 	  fputs_filtered (name, stream);
-	  free (name);
+	  xfree (name);
 	  break;
 	}
 
@@ -299,11 +299,11 @@ java_type_print_base (struct type *type,
 		      }
 
 		    fputs_filtered (demangled_no_class, stream);
-		    free (demangled_name);
+		    xfree (demangled_name);
 		  }
 
 		  if (TYPE_FN_FIELD_STUB (f, j))
-		    free (mangled_name);
+		    xfree (mangled_name);
 
 		  fprintf_filtered (stream, ";\n");
 		}
Index: kod-cisco.c
===================================================================
RCS file: /cvs/src/src/gdb/kod-cisco.c,v
retrieving revision 1.3
diff -u -p -r1.3 kod-cisco.c
--- kod-cisco.c	2000/11/29 14:41:34	1.3
+++ kod-cisco.c	2000/12/14 22:56:47
@@ -312,6 +312,6 @@ cisco_kod_request (char *arg, int from_t
 
   /* Free memory.  */
   for (i = 0; i < sync_next; ++i)
-    free (sync_ids[i]);
-  free (sync_ids);
+    xfree (sync_ids[i]);
+  xfree (sync_ids);
 }
Index: kod.c
===================================================================
RCS file: /cvs/src/src/gdb/kod.c,v
retrieving revision 1.2
diff -u -p -r1.2 kod.c
--- kod.c	2000/07/30 01:48:26	1.2
+++ kod.c	2000/12/14 22:56:47
@@ -143,7 +143,7 @@ kod_set_os (char *arg, int from_tty, str
   if (old_operating_system)
     {
       delete_cmd (old_operating_system, &infolist);
-      free (old_operating_system);
+      xfree (old_operating_system);
     }
   old_operating_system = xstrdup (operating_system);
 
@@ -175,7 +175,7 @@ kod_set_os (char *arg, int from_tty, str
 	p = "Unknown KOD library";
       printf_filtered ("%s - %s\n", operating_system, p);
 
-      free (kodlib);
+      xfree (kodlib);
     }
 }
 
Index: language.c
===================================================================
RCS file: /cvs/src/src/gdb/language.c,v
retrieving revision 1.10
diff -u -p -r1.10 language.c
--- language.c	2000/09/15 07:08:11	1.10
+++ language.c	2000/12/14 22:56:48
@@ -231,7 +231,7 @@ set_language_command (char *ignore, int 
   /* Reset the language (esp. the global string "language") to the 
      correct values. */
   err_lang = savestring (language, strlen (language));
-  make_cleanup (free, err_lang);	/* Free it after error */
+  make_cleanup (xfree, err_lang);	/* Free it after error */
   set_language (current_language->la_language);
   error ("Unknown language `%s'.", err_lang);
 }
@@ -421,7 +421,7 @@ set_lang_str (void)
   char *prefix = "";
 
   if (language)
-    free (language);
+    xfree (language);
   if (language_mode == language_mode_auto)
     prefix = "auto; currently ";
 
@@ -434,7 +434,7 @@ set_type_str (void)
   char *tmp = NULL, *prefix = "";
 
   if (type)
-    free (type);
+    xfree (type);
   if (type_mode == type_mode_auto)
     prefix = "auto; currently ";
 
@@ -480,7 +480,7 @@ set_range_str (void)
     }
 
   if (range)
-    free (range);
+    xfree (range);
   range = concat (pref, tmp, NULL);
 }
 
@@ -504,7 +504,7 @@ set_case_str()
      error ("Unrecognized case-sensitive setting.");
    }
 
-   free (case_sensitive);
+   xfree (case_sensitive);
    case_sensitive = concat (prefix, tmp, NULL);
 }
 
Index: lin-lwp.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-lwp.c,v
retrieving revision 1.3
diff -u -p -r1.3 lin-lwp.c
--- lin-lwp.c	2000/09/18 13:09:12	1.3
+++ lin-lwp.c	2000/12/14 22:56:49
@@ -164,7 +164,7 @@ init_lwp_list (void)
   for (lp = lwp_list; lp; lp = lpnext)
     {
       lpnext = lp->next;
-      free (lp);
+      xfree (lp);
     }
 
   lwp_list = NULL;
@@ -222,7 +222,7 @@ delete_lwp (int pid)
   else
     lwp_list = lp->next;
 
-  free (lp);
+  xfree (lp);
 }
 
 /* Return a pointer to the structure describing the LWP corresponding
@@ -268,7 +268,7 @@ restore_inferior_pid (void *arg)
 {
   int *saved_pid_ptr = arg;
   inferior_pid = *saved_pid_ptr;
-  free (arg);
+  xfree (arg);
 }
 
 static struct cleanup *
Index: lin-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-thread.c,v
retrieving revision 1.8
diff -u -p -r1.8 lin-thread.c
--- lin-thread.c	2000/09/13 01:55:17	1.8
+++ lin-thread.c	2000/12/14 22:56:50
@@ -665,7 +665,7 @@ restore_inferior_pid (void *arg)
 {
   int *saved_pid_ptr = arg;
   inferior_pid = *saved_pid_ptr;
-  free (arg);
+  xfree (arg);
 }
 
 /*
Index: linespec.c
===================================================================
RCS file: /cvs/src/src/gdb/linespec.c,v
retrieving revision 1.3
diff -u -p -r1.3 linespec.c
--- linespec.c	2000/12/01 00:41:27	1.3
+++ linespec.c	2000/12/14 22:56:50
@@ -163,7 +163,7 @@ find_methods (struct type *t, char *name
 						field_counter);
 		    phys_name = alloca (strlen (tmp_name) + 1);
 		    strcpy (phys_name, tmp_name);
-		    free (tmp_name);
+		    xfree (tmp_name);
 		  }
 		else
 		  phys_name = TYPE_FN_FIELD_PHYSNAME (f, field_counter);
@@ -306,12 +306,12 @@ decode_line_2 (struct symbol *sym_arr[],
     alloca (nelts * sizeof (struct symtab_and_line));
   return_values.sals = (struct symtab_and_line *)
     xmalloc (nelts * sizeof (struct symtab_and_line));
-  old_chain = make_cleanup (free, return_values.sals);
+  old_chain = make_cleanup (xfree, return_values.sals);
 
   if (canonical)
     {
       canonical_arr = (char **) xmalloc (nelts * sizeof (char *));
-      make_cleanup (free, canonical_arr);
+      make_cleanup (xfree, canonical_arr);
       memset (canonical_arr, 0, nelts * sizeof (char *));
       *canonical = canonical_arr;
     }
@@ -392,7 +392,7 @@ decode_line_2 (struct symbol *sym_arr[],
 	      if (canonical_arr)
 		{
 		  symname = SYMBOL_NAME (sym_arr[num]);
-		  make_cleanup (free, symname);
+		  make_cleanup (xfree, symname);
 		  canonical_arr[i] = savestring (symname, strlen (symname));
 		}
 	      return_values.sals[i++] = values.sals[num];
Index: linux-thread.c
===================================================================
RCS file: /cvs/src/src/gdb/linux-thread.c,v
retrieving revision 1.9
diff -u -p -r1.9 linux-thread.c
--- linux-thread.c	2000/09/13 01:55:17	1.9
+++ linux-thread.c	2000/12/14 22:56:51
@@ -379,7 +379,7 @@ restore_inferior_pid (void *arg)
 {
   int *saved_pid_ptr = arg;
   inferior_pid = *saved_pid_ptr;
-  free (arg);
+  xfree (arg);
 }
 
 /* Register a cleanup to restore the value of inferior_pid.  */
Index: main.c
===================================================================
RCS file: /cvs/src/src/gdb/main.c,v
retrieving revision 1.4
diff -u -p -r1.4 main.c
--- main.c	2000/10/23 22:49:28	1.4
+++ main.c	2000/12/14 22:56:59
@@ -583,7 +583,7 @@ extern int gdbtk_test (char *);
 
   for (i = 0; i < ndir; i++)
     catch_command_errors (directory_command, dirarg[i], 0, RETURN_MASK_ALL);
-  free ((PTR) dirarg);
+  xfree (dirarg);
 
   if (execarg != NULL
       && symarg != NULL
@@ -665,7 +665,7 @@ extern int gdbtk_test (char *);
 #endif
       catch_command_errors (source_command, cmdarg[i], !batch, RETURN_MASK_ALL);
     }
-  free ((PTR) cmdarg);
+  xfree (cmdarg);
 
   /* Read in the old history after all the command files have been read. */
   init_history ();
Index: maint.c
===================================================================
RCS file: /cvs/src/src/gdb/maint.c,v
retrieving revision 1.11
diff -u -p -r1.11 maint.c
--- maint.c	2000/07/30 01:48:26	1.11
+++ maint.c	2000/12/14 22:56:59
@@ -141,7 +141,7 @@ maintenance_demangle (char *args, int fr
       if (demangled != NULL)
 	{
 	  printf_unfiltered ("%s\n", demangled);
-	  free (demangled);
+	  xfree (demangled);
 	}
       else
 	{
@@ -444,7 +444,7 @@ maintenance_do_deprecate (char *text, in
     {
 
       if (alias->flags & MALLOCED_REPLACEMENT)
-	free (alias->replacement);
+	xfree (alias->replacement);
 
       if (deprecate)
 	alias->flags |= (DEPRECATED_WARN_USER | CMD_DEPRECATED);
@@ -457,7 +457,7 @@ maintenance_do_deprecate (char *text, in
   else if (cmd)
     {
       if (cmd->flags & MALLOCED_REPLACEMENT)
-	free (cmd->replacement);
+	xfree (cmd->replacement);
 
       if (deprecate)
 	cmd->flags |= (DEPRECATED_WARN_USER | CMD_DEPRECATED);
Index: mdebugread.c
===================================================================
RCS file: /cvs/src/src/gdb/mdebugread.c,v
retrieving revision 1.8
diff -u -p -r1.8 mdebugread.c
--- mdebugread.c	2000/12/04 04:01:15	1.8
+++ mdebugread.c	2000/12/14 22:57:02
@@ -2286,7 +2286,7 @@ parse_partial_symbols (struct objfile *o
      Minor hack: -O3 images might claim some global data belongs
      to FDR -1. We`ll go along with that */
   fdr_to_pst = (struct pst_map *) xzalloc ((hdr->ifdMax + 1) * sizeof *fdr_to_pst);
-  old_chain = make_cleanup (free, fdr_to_pst);
+  old_chain = make_cleanup (xfree, fdr_to_pst);
   fdr_to_pst++;
   {
     struct partial_symtab *pst = new_psymtab ("", objfile);
@@ -2304,7 +2304,7 @@ parse_partial_symbols (struct objfile *o
 
   /* Pass 0 over external syms: swap them in.  */
   ext_block = (EXTR *) xmalloc (hdr->iextMax * sizeof (EXTR));
-  make_cleanup (free, ext_block);
+  make_cleanup (xfree, ext_block);
 
   ext_out = (char *) debug_info->external_ext;
   ext_out_end = ext_out + hdr->iextMax * external_ext_size;
@@ -2704,7 +2704,7 @@ parse_partial_symbols (struct objfile *o
 
 		if (stabstring
 		    && stabstring != debug_info->ss + fh->issBase + sh.iss)
-		  free (stabstring);
+		  xfree (stabstring);
 	      }
 	      /* end - Handle continuation */
 	    }
@@ -3394,7 +3394,7 @@ psymtab_to_symtab_1 (struct partial_symt
 	  PDR *pdr_in_end;
 
 	  pr_block = (PDR *) xmalloc (fh->cpd * sizeof (PDR));
-	  old_chain = make_cleanup (free, pr_block);
+	  old_chain = make_cleanup (xfree, pr_block);
 
 	  pdr_ptr = ((char *) debug_info->external_pdr
 		     + fh->ipdFirst * external_pdr_size);
@@ -3503,7 +3503,7 @@ psymtab_to_symtab_1 (struct partial_symt
 
 	      pr_block = (PDR *) xmalloc (fh->cpd * sizeof (PDR));
 
-	      old_chain = make_cleanup (free, pr_block);
+	      old_chain = make_cleanup (xfree, pr_block);
 
 	      pdr_ptr = ((char *) debug_info->external_pdr
 			 + fh->ipdFirst * external_pdr_size);
Index: minsyms.c
===================================================================
RCS file: /cvs/src/src/gdb/minsyms.c,v
retrieving revision 1.11
diff -u -p -r1.11 minsyms.c
--- minsyms.c	2000/08/04 18:41:05	1.11
+++ minsyms.c	2000/12/14 22:57:03
@@ -729,7 +729,7 @@ do_discard_minimal_symbols_cleanup (void
   while (msym_bunch != NULL)
     {
       next = msym_bunch->next;
-      free ((PTR) msym_bunch);
+      xfree (msym_bunch);
       msym_bunch = next;
     }
 }
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.36
diff -u -p -r1.36 mips-tdep.c
--- mips-tdep.c	2000/12/04 04:01:15	1.36
+++ mips-tdep.c	2000/12/14 22:57:06
@@ -2548,7 +2548,7 @@ mips_pop_frame (void)
       else
 	linked_proc_desc_table = pi_ptr->next;
 
-      free (pi_ptr);
+      xfree (pi_ptr);
 
       write_register (HI_REGNUM,
 		      read_memory_integer (new_sp - 2 * MIPS_SAVED_REGSIZE,
Index: monitor.c
===================================================================
RCS file: /cvs/src/src/gdb/monitor.c,v
retrieving revision 1.14
diff -u -p -r1.14 monitor.c
--- monitor.c	2000/11/03 22:00:56	1.14
+++ monitor.c	2000/12/14 22:57:08
@@ -752,7 +752,7 @@ monitor_open (char *args, struct monitor
   unpush_target (targ_ops);
 
   if (dev_name)
-    free (dev_name);
+    xfree (dev_name);
   dev_name = strsave (args);
 
   monitor_desc = SERIAL_OPEN (dev_name);
@@ -851,7 +851,7 @@ monitor_close (int quitting)
   /* Free breakpoint memory */
   if (breakaddr != NULL)
     {
-      free (breakaddr);
+      xfree (breakaddr);
       breakaddr = NULL;
     }
 
Index: nlmread.c
===================================================================
RCS file: /cvs/src/src/gdb/nlmread.c,v
retrieving revision 1.4
diff -u -p -r1.4 nlmread.c
--- nlmread.c	2000/07/30 01:48:26	1.4
+++ nlmread.c	2000/12/14 22:57:08
@@ -108,7 +108,7 @@ nlm_symtab_read (bfd *abfd, CORE_ADDR ad
   if (storage_needed > 0)
     {
       symbol_table = (asymbol **) xmalloc (storage_needed);
-      back_to = make_cleanup (free, symbol_table);
+      back_to = make_cleanup (xfree, symbol_table);
       number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table);
       if (number_of_symbols < 0)
 	error ("Can't read symbols from %s: %s", bfd_get_filename (abfd),
Index: objfiles.c
===================================================================
RCS file: /cvs/src/src/gdb/objfiles.c,v
retrieving revision 1.11
diff -u -p -r1.11 objfiles.c
--- objfiles.c	2000/11/03 19:00:06	1.11
+++ objfiles.c	2000/12/14 22:57:10
@@ -262,13 +262,13 @@ allocate_objfile (bfd *abfd, int flags)
       memset (objfile, 0, sizeof (struct objfile));
       objfile->md = NULL;
       obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
-				  xmalloc, free);
+				  xmalloc, xfree);
       obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0, xmalloc,
-				  free);
+				  xfree);
       obstack_specify_allocation (&objfile->symbol_obstack, 0, 0, xmalloc,
-				  free);
+				  xfree);
       obstack_specify_allocation (&objfile->type_obstack, 0, 0, xmalloc,
-				  free);
+				  xfree);
       flags &= ~OBJF_MAPPED;
     }
 
@@ -413,7 +413,7 @@ free_objfile (struct objfile *objfile)
       if (!bfd_close (objfile->obfd))
 	warning ("cannot close \"%s\": %s",
 		 name, bfd_errmsg (bfd_get_error ()));
-      free (name);
+      xfree (name);
     }
 
   /* Remove it from the chain of all objfiles. */
@@ -855,7 +855,7 @@ open_mapped_file (char *filename, long m
   symsfilename = concat ("./", basename (filename), ".syms", (char *) NULL);
   if ((fd = open_existing_mapped_file (symsfilename, mtime, flags)) < 0)
     {
-      free (symsfilename);
+      xfree (symsfilename);
       symsfilename = concat (filename, ".syms", (char *) NULL);
       fd = open_existing_mapped_file (symsfilename, mtime, flags);
     }
@@ -871,7 +871,7 @@ open_mapped_file (char *filename, long m
 
   if ((fd < 0) && (flags & OBJF_MAPPED))
     {
-      free (symsfilename);
+      xfree (symsfilename);
       symsfilename = concat ("./", basename (filename), ".syms",
 			     (char *) NULL);
       if ((fd = open (symsfilename, O_RDWR | O_CREAT | O_TRUNC, 0666)) < 0)
@@ -884,7 +884,7 @@ open_mapped_file (char *filename, long m
 	}
     }
 
-  free (symsfilename);
+  xfree (symsfilename);
   return (fd);
 }
 
Index: osfsolib.c
===================================================================
RCS file: /cvs/src/src/gdb/osfsolib.c,v
retrieving revision 1.6
diff -u -p -r1.6 osfsolib.c
--- osfsolib.c	2000/09/27 17:43:07	1.6
+++ osfsolib.c	2000/12/14 22:57:11
@@ -126,7 +126,7 @@ ldr_read_memory (CORE_ADDR memaddr, char
       target_read_string (memaddr, &buffer, len, &result);
       if (result == 0)
 	strcpy (myaddr, buffer);
-      free (buffer);
+      xfree (buffer);
     }
   else
     result = target_read_memory (memaddr, myaddr, len);
@@ -228,7 +228,7 @@ solib_map_sections (char *arg)
   bfd *abfd;
 
   filename = tilde_expand (so->so_name);
-  old_chain = make_cleanup (free, filename);
+  old_chain = make_cleanup (xfree, filename);
 
   scratch_chan = openp (getenv ("PATH"), 1, filename, O_RDONLY, 0,
 			&scratch_pathname);
@@ -445,7 +445,7 @@ xfer_link_map_member (struct so_list *so
 	error ("xfer_link_map_member: Can't read pathname for load map: %s\n",
 	       safe_strerror (errcode));
       strncpy (so_list_ptr->so_name, buffer, MAX_PATH_SIZE - 1);
-      free (buffer);
+      xfree (buffer);
       so_list_ptr->so_name[MAX_PATH_SIZE - 1] = '\0';
 
       for (i = 0; i < lm->module_info.region_count; i++)
@@ -472,7 +472,7 @@ xfer_link_map_member (struct so_list *so
 		region_name = "??";
 	      warning ("cannot handle shared library relocation for %s (%s)",
 		       so_list_ptr->so_name, region_name);
-	      free (buffer);
+	      xfree (buffer);
 	    }
 	}
 #endif
@@ -797,7 +797,7 @@ clear_solib (void)
     {
       if (so_list_head->sections)
 	{
-	  free ((PTR) so_list_head->sections);
+	  xfree (so_list_head->sections);
 	}
       if (so_list_head->abfd)
 	{
@@ -812,8 +812,8 @@ clear_solib (void)
 
       next = so_list_head->next;
       if (bfd_filename)
-	free ((PTR) bfd_filename);
-      free ((PTR) so_list_head);
+	xfree (bfd_filename);
+      xfree (so_list_head);
       so_list_head = next;
     }
 }
Index: p-valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/p-valprint.c,v
retrieving revision 1.2
diff -u -p -r1.2 p-valprint.c
--- p-valprint.c	2000/07/30 01:48:26	1.2
+++ p-valprint.c	2000/12/14 22:57:13
@@ -669,7 +669,7 @@ common:
       else
 	{
 	  fputs_filtered (demangled_name, stream);
-	  free (demangled_name);
+	  xfree (demangled_name);
 	}
     }
   else
Index: pa64solib.c
===================================================================
RCS file: /cvs/src/src/gdb/pa64solib.c,v
retrieving revision 1.8
diff -u -p -r1.8 pa64solib.c
--- pa64solib.c	2000/11/20 17:44:07	1.8
+++ pa64solib.c	2000/12/14 22:57:13
@@ -168,7 +168,7 @@ pa64_solib_sizeof_symbol_table (char *fi
   if (!abfd)
     {
       close (desc);
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
       error ("\"%s\": can't open to read symbols: %s.", filename,
 	     bfd_errmsg (bfd_get_error ()));
     }
@@ -176,7 +176,7 @@ pa64_solib_sizeof_symbol_table (char *fi
   if (!bfd_check_format (abfd, bfd_object))
     {
       bfd_close (abfd);
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
       error ("\"%s\": can't read symbols: %s.", filename,
 	     bfd_errmsg (bfd_get_error ()));
     }
@@ -192,7 +192,7 @@ pa64_solib_sizeof_symbol_table (char *fi
     }
 
   bfd_close (abfd);
-  free (filename);
+  xfree (filename);
 
   /* Unfortunately, just summing the sizes of various debug info
      sections isn't a very accurate measurement of how much heap
@@ -573,7 +573,7 @@ get_out:
       struct so_list *temp;
 
       temp = so_list_head;
-      free (so_list_head);
+      xfree (so_list_head);
       so_list_head = temp->next;
     }
   clear_symtab_users ();
@@ -860,7 +860,7 @@ pa64_solib_restart (void)
   while (sl)
     {
       struct so_list *next_sl = sl->next;
-      free (sl);
+      xfree (sl);
       sl = next_sl;
     }
   so_list_head = NULL;
@@ -1213,7 +1213,7 @@ bfd_lookup_symbol (bfd *abfd, char *symn
   if (storage_needed > 0)
     {
       symbol_table = (asymbol **) xmalloc (storage_needed);
-      back_to = make_cleanup (free, (PTR) symbol_table);
+      back_to = make_cleanup (xfree, (PTR) symbol_table);
       number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table);
 
       for (i = 0; i < number_of_symbols; i++)
Index: parse.c
===================================================================
RCS file: /cvs/src/src/gdb/parse.c,v
retrieving revision 1.10
diff -u -p -r1.10 parse.c
--- parse.c	2000/12/01 00:41:27	1.10
+++ parse.c	2000/12/14 22:57:14
@@ -177,7 +177,7 @@ end_arglist (void)
   register struct funcall *call = funcall_chain;
   funcall_chain = call->next;
   arglist_len = call->arglist_len;
-  free ((PTR) call);
+  xfree (call);
   return val;
 }
 
@@ -192,7 +192,7 @@ free_funcalls (void *ignore)
   for (call = funcall_chain; call; call = next)
     {
       next = call->next;
-      free ((PTR) call);
+      xfree (call);
     }
 }
 
Index: printcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/printcmd.c,v
retrieving revision 1.13
diff -u -p -r1.13 printcmd.c
--- printcmd.c	2000/08/25 20:51:19	1.13
+++ printcmd.c	2000/12/14 22:57:16
@@ -1438,8 +1438,8 @@ display_command (char *exp, int from_tty
 static void
 free_display (struct display *d)
 {
-  free ((PTR) d->exp);
-  free ((PTR) d);
+  xfree (d->exp);
+  xfree (d);
 }
 
 /* Clear out the display_chain.
@@ -1453,9 +1453,9 @@ clear_displays (void)
 
   while ((d = display_chain) != NULL)
     {
-      free ((PTR) d->exp);
+      xfree (d->exp);
       display_chain = d->next;
-      free ((PTR) d);
+      xfree (d);
     }
 }
 
Index: proc-service.c
===================================================================
RCS file: /cvs/src/src/gdb/proc-service.c,v
retrieving revision 1.1
diff -u -p -r1.1 proc-service.c
--- proc-service.c	2000/09/03 18:41:28	1.1
+++ proc-service.c	2000/12/14 22:57:17
@@ -65,7 +65,7 @@ restore_inferior_pid (void *arg)
 {
   int *saved_pid_ptr = arg;
   inferior_pid = *saved_pid_ptr;
-  free (arg);
+  xfree (arg);
 }
 
 static struct cleanup *
Index: procfs.c
===================================================================
RCS file: /cvs/src/src/gdb/procfs.c,v
retrieving revision 1.20
diff -u -p -r1.20 procfs.c
--- procfs.c	2000/09/30 02:39:10	1.20
+++ procfs.c	2000/12/14 22:57:20
@@ -631,7 +631,7 @@ destroy_one_procinfo (procinfo **list, p
   close_procinfo_files (pi);
 
   /* Step three: free the memory. */
-  free (pi);
+  xfree (pi);
 }
 
 static void
@@ -2879,7 +2879,7 @@ proc_update_threads (procinfo *pi)
        malloc (sizeof (gdb_prstatus_t) * (nlwp + 1))) == 0)
     perror_with_name ("procfs: malloc failed in update_threads");
 
-  old_chain = make_cleanup (free, prstatus);
+  old_chain = make_cleanup (xfree, prstatus);
   if (ioctl (pi->ctl_fd, PIOCLSTATUS, prstatus) < 0)
     proc_error (pi, "update_threads (PIOCLSTATUS)", __LINE__);
 
Index: pyr-xdep.c
===================================================================
RCS file: /cvs/src/src/gdb/pyr-xdep.c,v
retrieving revision 1.1.1.4
diff -u -p -r1.1.1.4 pyr-xdep.c
--- pyr-xdep.c	1999/07/07 20:08:51	1.1.1.4
+++ pyr-xdep.c	2000/12/14 22:57:20
@@ -205,7 +205,7 @@
 /* OBSOLETE      and mark data and stack spaces as empty.  *x/ */
 /* OBSOLETE  */
 /* OBSOLETE   if (corefile) */
-/* OBSOLETE     free (corefile); */
+/* OBSOLETE     xfree (corefile); */
 /* OBSOLETE   corefile = 0; */
 /* OBSOLETE  */
 /* OBSOLETE   if (corechan >= 0) */
@@ -227,7 +227,7 @@
 /* OBSOLETE   if (filename) */
 /* OBSOLETE     { */
 /* OBSOLETE       filename = tilde_expand (filename); */
-/* OBSOLETE       make_cleanup (free, filename); */
+/* OBSOLETE       make_cleanup (xfree, filename); */
 /* OBSOLETE        */
 /* OBSOLETE       if (have_inferior_p ()) */
 /* OBSOLETE     error ("To look at a core file, you must kill the program with \"kill\"."); */
Index: remote-adapt.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-adapt.c,v
retrieving revision 1.5
diff -u -p -r1.5 remote-adapt.c
--- remote-adapt.c	2000/10/02 00:49:55	1.5
+++ remote-adapt.c	2000/12/14 22:57:21
@@ -610,7 +610,7 @@ the baud rate, and the name of the progr
     /*EMPTY */ ;
 
   if (prog_name != NULL)
-    free (prog_name);
+    xfree (prog_name);
   prog_name = savestring (p, strlen (p));
 
   adapt_close (0);
Index: remote-bug.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-bug.c,v
retrieving revision 1.8
diff -u -p -r1.8 remote-bug.c
--- remote-bug.c	2000/11/03 22:00:56	1.8
+++ remote-bug.c	2000/12/14 22:57:24
@@ -156,7 +156,7 @@ bug_load (char *args, int fromtty)
 	      gdb_flush (gdb_stdout);
 	    }
 	  printf_filtered ("\n");
-	  free (buffer);
+	  xfree (buffer);
 	}
       s = s->next;
     }
Index: remote-eb.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-eb.c,v
retrieving revision 1.5
diff -u -p -r1.5 remote-eb.c
--- remote-eb.c	2000/10/06 21:50:56	1.5
+++ remote-eb.c	2000/12/14 22:57:24
@@ -426,7 +426,7 @@ the baud rate, and the name of the progr
     /*EMPTY */ ;
 
   if (prog_name != NULL)
-    free (prog_name);
+    xfree (prog_name);
   prog_name = savestring (p, strlen (p));
 
   eb_close (0);
Index: remote-es.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-es.c,v
retrieving revision 1.6
diff -u -p -r1.6 remote-es.c
--- remote-es.c	2000/10/30 21:50:57	1.6
+++ remote-es.c	2000/12/14 22:57:25
@@ -433,7 +433,7 @@ es1800_close (int quitting)
     }
   if (savename != NULL)
     {
-      free (savename);
+      xfree (savename);
     }
   savename = NULL;
 
@@ -1235,7 +1235,7 @@ es1800_load (char *filename, int from_tt
     }
 
   filename = tilde_expand (filename);
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
 
   switch (es1800_load_format)
     {
Index: remote-mips.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-mips.c,v
retrieving revision 1.10
diff -u -p -r1.10 remote-mips.c
--- remote-mips.c	2000/09/12 17:20:09	1.10
+++ remote-mips.c	2000/12/14 22:57:27
@@ -1576,9 +1576,9 @@ device is attached to the target board (
 	     the user didn't specify a local name, assume it's the same
 	     as the part of the remote name after the "host:".  */
 	  if (tftp_name)
-	    free (tftp_name);
+	    xfree (tftp_name);
 	  if (tftp_localname)
-	    free (tftp_localname);
+	    xfree (tftp_localname);
 	  if (local_name == NULL)
 	    if ((local_name = strchr (remote_name, ':')) != NULL)
 	      local_name++;	/* skip over the colon */
@@ -1624,7 +1624,7 @@ device is attached to the target board (
   set_current_frame (create_new_frame (read_fp (), stop_pc));
   select_frame (get_current_frame (), 0);
   print_stack_frame (selected_frame, -1, 1);
-  free (serial_port_name);
+  xfree (serial_port_name);
 }
 
 static void
@@ -3230,7 +3230,7 @@ pmon_end_download (int final, int bintot
       strcat (cmd, tftp_name);
       strcat (cmd, "\r");
       mips_send_command (cmd, 0);
-      free (cmd);
+      xfree (cmd);
       if (!mips_expect_download ("Downloading from "))
 	return;
       if (!mips_expect_download (tftp_name))
Index: remote-mm.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-mm.c,v
retrieving revision 1.4
diff -u -p -r1.4 remote-mm.c
--- remote-mm.c	2000/10/06 21:50:56	1.4
+++ remote-mm.c	2000/12/14 22:57:28
@@ -333,7 +333,7 @@ mm_open (char *name, int from_tty)
     /*EMPTY */ ;
 
   if (prog_name != NULL)
-    free (prog_name);
+    xfree (prog_name);
   prog_name = savestring (p, strlen (p));
 
 
@@ -1086,7 +1086,7 @@ mm_load (char *arg_string, int from_tty)
     error ("The load command takes a file name");
 
   arg_string = tilde_expand (arg_string);
-  make_cleanup (free, arg_string);
+  make_cleanup (xfree, arg_string);
   QUIT;
   immediate_quit++;
   error ("File loading is not yet supported for MiniMon.");
Index: remote-nindy.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-nindy.c,v
retrieving revision 1.9
diff -u -p -r1.9 remote-nindy.c
--- remote-nindy.c	2000/11/03 22:00:56	1.9
+++ remote-nindy.c	2000/12/14 22:57:28
@@ -161,7 +161,7 @@ nindy_close (int quitting)
   nindy_serial = NULL;
 
   if (savename)
-    free (savename);
+    xfree (savename);
   savename = 0;
 }
 
@@ -285,7 +285,7 @@ clean_up_tty (PTR ptrarg)
 {
   struct clean_up_tty_args *args = (struct clean_up_tty_args *) ptrarg;
   SERIAL_SET_TTY_STATE (args->serial, args->state);
-  free (args->state);
+  xfree (args->state);
   warning ("\n\nYou may need to reset the 80960 and/or reload your program.\n");
 }
 
@@ -299,7 +299,7 @@ static void
 clean_up_int (void)
 {
   SERIAL_SET_TTY_STATE (tty_args.serial, tty_args.state);
-  free (tty_args.state);
+  xfree (tty_args.state);
 
   signal (SIGINT, old_ctrlc);
 #ifdef SIGTSTP
@@ -392,7 +392,7 @@ nindy_wait (int pid, struct target_waits
     }
 
   SERIAL_SET_TTY_STATE (tty_args.serial, tty_args.state);
-  free (tty_args.state);
+  xfree (tty_args.state);
   discard_cleanups (old_cleanups);
 
   if (stop_exit)
@@ -603,7 +603,7 @@ nindy_load (char *filename, int from_tty
 		  s->_raw_size,
 		  s->vma);
 	  ninMemPut (s->vma, buffer, s->_raw_size);
-	  free (buffer);
+	  xfree (buffer);
 	}
     }
   bfd_close (file);
Index: remote-rdi.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-rdi.c,v
retrieving revision 1.9
diff -u -p -r1.9 remote-rdi.c
--- remote-rdi.c	2000/10/12 22:56:31	1.9
+++ remote-rdi.c	2000/12/14 22:57:29
@@ -331,7 +331,7 @@ device is attached to the remote system 
     for (entry = local_bp_list; entry != NULL; entry = entry->next)
       {
 	if (preventry)
-	  free (preventry);
+	  xfree (preventry);
       }
   }
 
@@ -773,7 +773,7 @@ arm_rdi_remove_breakpoint (CORE_ADDR add
 	{
 	  preventry->next = entry->next;
 	}
-      free (entry);
+      xfree (entry);
     }
   return 0;
 }
@@ -982,7 +982,7 @@ rdilogfile_command (char *arg, int from_
     }
 
   if (log_filename)
-    free (log_filename);
+    xfree (log_filename);
 
   log_filename = xstrdup (arg);
 
Index: remote-rdp.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-rdp.c,v
retrieving revision 1.7
diff -u -p -r1.7 remote-rdp.c
--- remote-rdp.c	2000/10/30 21:50:57	1.7
+++ remote-rdp.c	2000/12/14 22:57:30
@@ -696,7 +696,7 @@ rdp_set_command_line (char *command, cha
    */
 
   if (commandline != NULL)
-    free (commandline);
+    xfree (commandline);
 
   commandline = malloc (strlen (command) + strlen (args) + 2);
   if (commandline != NULL)
Index: remote-udi.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-udi.c,v
retrieving revision 1.7
diff -u -p -r1.7 remote-udi.c
--- remote-udi.c	2000/08/02 05:17:27	1.7
+++ remote-udi.c	2000/12/14 22:57:32
@@ -131,7 +131,7 @@ udi_create_inferior (char *execfile, cha
   if (execfile)
     {
       if (prog_name != NULL)
-	free (prog_name);
+	xfree (prog_name);
       prog_name = savestring (execfile, strlen (execfile));
     }
   else if (entry.Offset)
@@ -229,7 +229,7 @@ udi_open (char *name, int from_tty)
     bkpt_table[cnt].Type = 0;
 
   if (udi_config_id)
-    free (udi_config_id);
+    xfree (udi_config_id);
 
   if (!name)
     error ("Usage: target udi config_id, where config_id appears in udi_soc file");
@@ -1081,7 +1081,7 @@ download (char *load_arg_string, int fro
     error ("Must specify at least a file name with the load command");
 
   filename = tilde_expand (filename);
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
 
   while (token = strtok (NULL, " \t"))
     {
Index: remote-vx.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-vx.c,v
retrieving revision 1.9
diff -u -p -r1.9 remote-vx.c
--- remote-vx.c	2000/10/30 21:50:57	1.9
+++ remote-vx.c	2000/12/14 22:57:33
@@ -700,7 +700,7 @@ vx_load_command (char *arg_string, int f
     error ("The load command takes a file name");
 
   arg_string = tilde_expand (arg_string);
-  make_cleanup (free, arg_string);
+  make_cleanup (xfree, arg_string);
 
   dont_repeat ();
 
@@ -1209,7 +1209,7 @@ vx_attach (char *args, int from_tty)
   push_target (&vx_run_ops);
 
   if (vx_running)
-    free (vx_running);
+    xfree (vx_running);
   vx_running = 0;
 }
 
@@ -1294,7 +1294,7 @@ vx_proc_close (int quitting)
 {
   inferior_pid = 0;		/* No longer have a process.  */
   if (vx_running)
-    free (vx_running);
+    xfree (vx_running);
   vx_running = 0;
 }
 
@@ -1325,7 +1325,7 @@ vx_close (int quitting)
   pClient = 0;
 
   if (vx_host)
-    free (vx_host);		/* The hostname */
+    xfree (vx_host);		/* The hostname */
   vx_host = 0;
 }
 
Index: remote.c
===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.30
diff -u -p -r1.30 remote.c
--- remote.c	2000/11/27 02:18:44	1.30
+++ remote.c	2000/12/14 22:57:36
@@ -4596,7 +4596,7 @@ compare_sections_command (char *args, in
 
       /* be clever; compute the host_crc before waiting for target reply */
       sectdata = xmalloc (size);
-      old_chain = make_cleanup (free, sectdata);
+      old_chain = make_cleanup (xfree, sectdata);
       bfd_get_section_contents (exec_bfd, s, sectdata, 0, size);
       host_crc = crc32 ((unsigned char *) sectdata, size, 0xffffffff);
 
Index: rs6000-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-nat.c,v
retrieving revision 1.11
diff -u -p -r1.11 rs6000-nat.c
--- rs6000-nat.c	2000/11/09 09:49:00	1.11
+++ rs6000-nat.c	2000/12/14 22:57:37
@@ -977,7 +977,7 @@ xcoff_relocate_symtab (unsigned int pid)
 	}
     } while (rc == -1);
   if (ldi)
-    free (ldi);
+    xfree (ldi);
 }
 
 /* Core file stuff.  */
Index: ser-pipe.c
===================================================================
RCS file: /cvs/src/src/gdb/ser-pipe.c,v
retrieving revision 1.3
diff -u -p -r1.3 ser-pipe.c
--- ser-pipe.c	2000/12/02 15:40:56	1.3
+++ ser-pipe.c	2000/12/14 22:57:39
@@ -124,7 +124,7 @@ pipe_close (serial_t scb)
       int pid = state->pid;
       close (scb->fd);
       scb->fd = -1;
-      free (state);
+      xfree (state);
       scb->state = NULL;
       kill (pid, SIGTERM);
       /* Might be useful to check that the child does die. */
Index: serial.c
===================================================================
RCS file: /cvs/src/src/gdb/serial.c,v
retrieving revision 1.4
diff -u -p -r1.4 serial.c
--- serial.c	2000/06/08 00:52:56	1.4
+++ serial.c	2000/12/14 22:57:40
@@ -209,7 +209,7 @@ serial_open (const char *name)
 
   if (scb->ops->open (scb, open_name))
     {
-      free (scb);
+      xfree (scb);
       return NULL;
     }
 
@@ -310,7 +310,7 @@ do_serial_close (serial_t scb, int reall
     scb->ops->close (scb);
 
   if (scb->name)
-    free (scb->name);
+    xfree (scb->name);
 
   if (scb_base == scb)
     scb_base = scb_base->next;
@@ -324,7 +324,7 @@ do_serial_close (serial_t scb, int reall
 	break;
       }
 
-  free (scb);
+  xfree (scb);
 }
 
 void
@@ -397,7 +397,7 @@ serial_printf (serial_t desc, const char
   vasprintf (&buf, format, args);
   SERIAL_WRITE (desc, buf, strlen (buf));
 
-  free (buf);
+  xfree (buf);
   va_end (args);
 }
 
@@ -551,7 +551,7 @@ cleanup_tty (serial_ttystate ttystate)
 {
   printf_unfiltered ("\r\n[Exiting connect mode]\r\n");
   SERIAL_SET_TTY_STATE (tty_desc, ttystate);
-  free (ttystate);
+  xfree (ttystate);
   SERIAL_CLOSE (tty_desc);
 }
 
Index: solib-svr4.c
===================================================================
RCS file: /cvs/src/src/gdb/solib-svr4.c,v
retrieving revision 1.4
diff -u -p -r1.4 solib-svr4.c
--- solib-svr4.c	2000/11/21 01:09:54	1.4
+++ solib-svr4.c	2000/12/14 22:57:44
@@ -308,13 +308,13 @@ allocate_rt_common_objfile (void)
   memset (objfile, 0, sizeof (struct objfile));
   objfile->md = NULL;
   obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
-			      xmalloc, free);
+			      xmalloc, xfree);
   obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0, xmalloc,
-			      free);
+			      xfree);
   obstack_specify_allocation (&objfile->symbol_obstack, 0, 0, xmalloc,
-			      free);
+			      xfree);
   obstack_specify_allocation (&objfile->type_obstack, 0, 0, xmalloc,
-			      free);
+			      xfree);
   objfile->name = mstrsave (objfile->md, "rt_common");
 
   /* Add this file onto the tail of the linked list of other such files. */
@@ -351,7 +351,7 @@ solib_add_common_symbols (CORE_ADDR rtc_
     {
       obstack_free (&rt_common_objfile->symbol_obstack, 0);
       obstack_specify_allocation (&rt_common_objfile->symbol_obstack, 0, 0,
-				  xmalloc, free);
+				  xmalloc, xfree);
       rt_common_objfile->minimal_symbol_count = 0;
       rt_common_objfile->msymbols = NULL;
     }
@@ -384,7 +384,7 @@ solib_add_common_symbols (CORE_ADDR rtc_
 
 	  prim_record_minimal_symbol (name, inferior_rtc_nlist.n_value,
 				      mst_bss, rt_common_objfile);
-	  free (name);
+	  xfree (name);
 	}
       rtc_symp = SOLIB_EXTRACT_ADDRESS (inferior_rtc_symb.rtc_next);
     }
@@ -439,7 +439,7 @@ bfd_lookup_symbol (bfd *abfd, char *symn
   if (storage_needed > 0)
     {
       symbol_table = (asymbol **) xmalloc (storage_needed);
-      back_to = make_cleanup (free, (PTR) symbol_table);
+      back_to = make_cleanup (xfree, (PTR) symbol_table);
       number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table);
 
       for (i = 0; i < number_of_symbols; i++)
@@ -466,7 +466,7 @@ bfd_lookup_symbol (bfd *abfd, char *symn
   if (storage_needed > 0)
     {
       symbol_table = (asymbol **) xmalloc (storage_needed);
-      back_to = make_cleanup (free, (PTR) symbol_table);
+      back_to = make_cleanup (xfree, (PTR) symbol_table);
       number_of_symbols = bfd_canonicalize_dynamic_symtab (abfd, symbol_table);
 
       for (i = 0; i < number_of_symbols; i++)
@@ -853,7 +853,7 @@ first_link_map_member (void)
 #else /* SVR4_SHARED_LIBS */
   struct link_map_offsets *lmo = SVR4_FETCH_LINK_MAP_OFFSETS ();
   char *r_map_buf = xmalloc (lmo->r_map_size);
-  struct cleanup *cleanups = make_cleanup (free, r_map_buf);
+  struct cleanup *cleanups = make_cleanup (xfree, r_map_buf);
 
   read_memory (debug_base + lmo->r_map_offset, r_map_buf, lmo->r_map_size);
 
@@ -902,7 +902,7 @@ open_symbol_file_object (void *from_ttyp
   int from_tty = *(int *)from_ttyp;
   struct link_map_offsets *lmo = SVR4_FETCH_LINK_MAP_OFFSETS ();
   char *l_name_buf = xmalloc (lmo->l_name_size);
-  struct cleanup *cleanups = make_cleanup (free, l_name_buf);
+  struct cleanup *cleanups = make_cleanup (xfree, l_name_buf);
 
   if (symfile_objfile)
     if (!query ("Attempt to reload symbols from process? "))
@@ -937,7 +937,7 @@ open_symbol_file_object (void *from_ttyp
       return 0;
     }
 
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
   /* Have a pathname: read the symbol file.  */
   symbol_file_command (filename, from_tty);
 
@@ -1000,15 +1000,15 @@ svr4_current_sos (void)
       struct link_map_offsets *lmo = SVR4_FETCH_LINK_MAP_OFFSETS ();
       struct so_list *new
 	= (struct so_list *) xmalloc (sizeof (struct so_list));
-      struct cleanup *old_chain = make_cleanup (free, new);
+      struct cleanup *old_chain = make_cleanup (xfree, new);
 
       memset (new, 0, sizeof (*new));
 
       new->lm_info = xmalloc (sizeof (struct lm_info));
-      make_cleanup (free, new->lm_info);
+      make_cleanup (xfree, new->lm_info);
 
       new->lm_info->lm = xmalloc (lmo->link_map_size);
-      make_cleanup (free, new->lm_info->lm);
+      make_cleanup (xfree, new->lm_info->lm);
       memset (new->lm_info->lm, 0, lmo->link_map_size);
 
       read_memory (lm, new->lm_info->lm, lmo->link_map_size);
@@ -1039,7 +1039,7 @@ svr4_current_sos (void)
 	    {
 	      strncpy (new->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
 	      new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
-	      free (buffer);
+	      xfree (buffer);
 	      strcpy (new->so_original_name, new->so_name);
 	    }
 
@@ -1522,7 +1522,7 @@ svr4_relocate_main_executable (void)
 
       new_offsets = xcalloc (sizeof (struct section_offsets),
 			     symfile_objfile->num_sections);
-      old_chain = make_cleanup (free, new_offsets);
+      old_chain = make_cleanup (xfree, new_offsets);
 
       for (i = 0; i < symfile_objfile->num_sections; i++)
 	{
@@ -1667,8 +1667,8 @@ svr4_clear_solib (void)
 static void
 svr4_free_so (struct so_list *so)
 {
-  free (so->lm_info->lm);
-  free (so->lm_info);
+  xfree (so->lm_info->lm);
+  xfree (so->lm_info);
 }
 
 static void
Index: solib.c
===================================================================
RCS file: /cvs/src/src/gdb/solib.c,v
retrieving revision 1.29
diff -u -p -r1.29 solib.c
--- solib.c	2000/11/27 02:18:44	1.29
+++ solib.c	2000/12/14 22:57:44
@@ -187,7 +187,7 @@ solib_map_sections (PTR arg)
 
   filename = tilde_expand (so->so_name);
 
-  old_chain = make_cleanup (free, filename);
+  old_chain = make_cleanup (xfree, filename);
   scratch_chan = solib_open (filename, &scratch_pathname);
 
   if (scratch_chan < 0)
@@ -270,7 +270,7 @@ free_so (struct so_list *so)
   char *bfd_filename = 0;
 
   if (so->sections)
-    free (so->sections);
+    xfree (so->sections);
       
   if (so->abfd)
     {
@@ -281,11 +281,11 @@ free_so (struct so_list *so)
     }
 
   if (bfd_filename)
-    free (bfd_filename);
+    xfree (bfd_filename);
 
   TARGET_SO_FREE_SO (so);
 
-  free (so);
+  xfree (so);
 }
 
 
Index: somread.c
===================================================================
RCS file: /cvs/src/src/gdb/somread.c,v
retrieving revision 1.8
diff -u -p -r1.8 somread.c
--- somread.c	2000/10/30 21:50:58	1.8
+++ somread.c	2000/12/14 22:57:45
@@ -597,7 +597,7 @@ init_import_symbols (struct objfile *obj
     }
 
   objfile->import_list_size = import_list_size;
-  free (string_buffer);
+  xfree (string_buffer);
   return import_list_size;
 }
 
@@ -728,7 +728,7 @@ init_export_symbols (struct objfile *obj
     }
 
   objfile->export_list_size = export_list_size;
-  free (string_buffer);
+  xfree (string_buffer);
   return export_list_size;
 }
 
Index: somsolib.c
===================================================================
RCS file: /cvs/src/src/gdb/somsolib.c,v
retrieving revision 1.6
diff -u -p -r1.6 somsolib.c
--- somsolib.c	2000/08/27 22:30:29	1.6
+++ somsolib.c	2000/12/14 22:57:46
@@ -230,7 +230,7 @@ som_solib_sizeof_symbol_table (char *fil
   if (!abfd)
     {
       close (desc);
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
       error ("\"%s\": can't open to read symbols: %s.", filename,
 	     bfd_errmsg (bfd_get_error ()));
     }
@@ -238,7 +238,7 @@ som_solib_sizeof_symbol_table (char *fil
   if (!bfd_check_format (abfd, bfd_object))	/* Reads in section info */
     {
       bfd_close (abfd);		/* This also closes desc */
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
       error ("\"%s\": can't read symbols: %s.", filename,
 	     bfd_errmsg (bfd_get_error ()));
     }
@@ -256,7 +256,7 @@ som_solib_sizeof_symbol_table (char *fil
     st_size += (LONGEST) bfd_section_size (abfd, sect);
 
   bfd_close (abfd);		/* This also closes desc */
-  free (filename);
+  xfree (filename);
 
   /* Unfortunately, just summing the sizes of various debug info
      sections isn't a very accurate measurement of how much heap
@@ -1007,7 +1007,7 @@ keep_going:
       struct so_list *temp;
 
       temp = so_list_head;
-      free (so_list_head);
+      xfree (so_list_head);
       so_list_head = temp->next;
     }
   clear_symtab_users ();
@@ -1500,7 +1500,7 @@ som_solib_restart (void)
   while (sl)
     {
       struct so_list *next_sl = sl->next;
-      free (sl);
+      xfree (sl);
       sl = next_sl;
     }
   so_list_head = NULL;
Index: source.c
===================================================================
RCS file: /cvs/src/src/gdb/source.c,v
retrieving revision 1.5
diff -u -p -r1.5 source.c
--- source.c	2000/12/01 00:41:27	1.5
+++ source.c	2000/12/14 22:57:46
@@ -156,7 +156,7 @@ select_source_symtab (register struct sy
     {
       sals = decode_line_spec ("main", 1);
       sal = sals.sals[0];
-      free (sals.sals);
+      xfree (sals.sals);
       current_source_symtab = sal.symtab;
       current_source_line = max (sal.line - (lines_to_list - 1), 1);
       if (current_source_symtab)
@@ -270,7 +270,7 @@ directory_command (char *dirname, int fr
     {
       if (from_tty && query ("Reinitialize source path to empty? "))
 	{
-	  free (source_path);
+	  xfree (source_path);
 	  init_source_path ();
 	}
     }
@@ -296,7 +296,7 @@ mod_path (char *dirname, char **which_pa
     return;
 
   dirname = strsave (dirname);
-  make_cleanup (free, dirname);
+  make_cleanup (xfree, dirname);
 
   do
     {
@@ -376,7 +376,7 @@ mod_path (char *dirname, char **which_pa
 	name = concat (current_directory, SLASH_STRING, name, NULL);
       else
 	name = savestring (name, p - name);
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
 
       /* Unless it's a variable, check existence.  */
       if (name[0] != '$')
@@ -449,14 +449,14 @@ mod_path (char *dirname, char **which_pa
 		old[prefix] = c;
 		*which_path = concat (temp, "", &old[prefix], NULL);
 		prefix = strlen (temp);
-		free (temp);
+		xfree (temp);
 	      }
 	    else
 	      {
 		*which_path = concat (name, (old[0] ? tinybuf : old), old, NULL);
 		prefix = strlen (name);
 	      }
-	    free (old);
+	    xfree (old);
 	    old = *which_path;
 	  }
       }
@@ -729,7 +729,7 @@ open_source_file (struct symtab *s)
     {
       fullname = s->fullname;
       s->fullname = mstrsave (s->objfile->md, s->fullname);
-      free (fullname);
+      xfree (fullname);
     }
   return result;
 }
@@ -830,7 +830,7 @@ find_source_lines (struct symtab *s, int
     /* Use malloc, not alloca, because this may be pretty large, and we may
        run into various kinds of limits on stack size.  */
     data = (char *) xmalloc (size);
-    old_cleanups = make_cleanup (free, data);
+    old_cleanups = make_cleanup (xfree, data);
 
     /* Reassign `size' to result of read for systems where \r\n -> \n.  */
     size = myread (desc, data, size);
@@ -1233,12 +1233,12 @@ list_command (char *arg, int from_tty)
       if (sals.nelts > 1)
 	{
 	  ambiguous_line_spec (&sals);
-	  free (sals.sals);
+	  xfree (sals.sals);
 	  return;
 	}
 
       sal = sals.sals[0];
-      free (sals.sals);
+      xfree (sals.sals);
     }
 
   /* Record whether the BEG arg is all digits.  */
@@ -1267,11 +1267,11 @@ list_command (char *arg, int from_tty)
 	  if (sals_end.nelts > 1)
 	    {
 	      ambiguous_line_spec (&sals_end);
-	      free (sals_end.sals);
+	      xfree (sals_end.sals);
 	      return;
 	    }
 	  sal_end = sals_end.sals[0];
-	  free (sals_end.sals);
+	  xfree (sals_end.sals);
 	}
     }
 
@@ -1442,7 +1442,7 @@ line_info (char *arg, int from_tty)
 	printf_filtered ("Line number %d is out of range for \"%s\".\n",
 			 sal.line, sal.symtab->filename);
     }
-  free (sals.sals);
+  xfree (sals.sals);
 }
 
 /* Commands to search the source file for a regexp.  */
Index: sparcl-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparcl-tdep.c,v
retrieving revision 1.7
diff -u -p -r1.7 sparcl-tdep.c
--- sparcl-tdep.c	2000/10/23 03:21:06	1.7
+++ sparcl-tdep.c	2000/12/14 22:57:51
@@ -411,7 +411,7 @@ sparclite_open (char *name, int from_tty
   unpush_target (&sparclite_ops);
 
   if (remote_target_name)
-    free (remote_target_name);
+    xfree (remote_target_name);
 
   remote_target_name = strsave (name);
 
Index: stabsread.c
===================================================================
RCS file: /cvs/src/src/gdb/stabsread.c,v
retrieving revision 1.9
diff -u -p -r1.9 stabsread.c
--- stabsread.c	2000/11/10 23:18:16	1.9
+++ stabsread.c	2000/12/14 22:57:53
@@ -654,7 +654,7 @@ read_cfront_baseclasses (struct field_in
   for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
     {
       new = (struct nextfield *) xmalloc (sizeof (struct nextfield));
-      make_cleanup (free, new);
+      make_cleanup (xfree, new);
       memset (new, 0, sizeof (struct nextfield));
       new->next = fip->list;
       fip->list = new;
@@ -814,7 +814,7 @@ read_cfront_member_functions (struct fie
 
       new_fnlist = (struct next_fnfieldlist *)
 	xmalloc (sizeof (struct next_fnfieldlist));
-      make_cleanup (free, new_fnlist);
+      make_cleanup (xfree, new_fnlist);
       memset (new_fnlist, 0, sizeof (struct next_fnfieldlist));
 
       /* The following is code to work around cfront generated stabs.
@@ -857,7 +857,7 @@ read_cfront_member_functions (struct fie
 
       new_sublist =
 	(struct next_fnfield *) xmalloc (sizeof (struct next_fnfield));
-      make_cleanup (free, new_sublist);
+      make_cleanup (xfree, new_sublist);
       memset (new_sublist, 0, sizeof (struct next_fnfield));
 
       /* eat 1; from :;2A.; */
@@ -2989,7 +2989,7 @@ read_member_functions (struct field_info
 
       new_fnlist = (struct next_fnfieldlist *)
 	xmalloc (sizeof (struct next_fnfieldlist));
-      make_cleanup (free, new_fnlist);
+      make_cleanup (xfree, new_fnlist);
       memset (new_fnlist, 0, sizeof (struct next_fnfieldlist));
 
       if ((*pp)[0] == 'o' && (*pp)[1] == 'p' && is_cplus_marker ((*pp)[2]))
@@ -3032,7 +3032,7 @@ read_member_functions (struct field_info
 	{
 	  new_sublist =
 	    (struct next_fnfield *) xmalloc (sizeof (struct next_fnfield));
-	  make_cleanup (free, new_sublist);
+	  make_cleanup (xfree, new_sublist);
 	  memset (new_sublist, 0, sizeof (struct next_fnfield));
 
 	  /* Check for and handle cretinous dbx symbol name continuation!  */
@@ -3508,7 +3508,7 @@ read_struct_fields (struct field_info *f
       STABS_CONTINUE (pp, objfile);
       /* Get space to record the next field's data.  */
       new = (struct nextfield *) xmalloc (sizeof (struct nextfield));
-      make_cleanup (free, new);
+      make_cleanup (xfree, new);
       memset (new, 0, sizeof (struct nextfield));
       new->next = fip->list;
       fip->list = new;
@@ -3628,7 +3628,7 @@ read_baseclasses (struct field_info *fip
   for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
     {
       new = (struct nextfield *) xmalloc (sizeof (struct nextfield));
-      make_cleanup (free, new);
+      make_cleanup (xfree, new);
       memset (new, 0, sizeof (struct nextfield));
       new->next = fip->list;
       fip->list = new;
@@ -3848,7 +3848,7 @@ read_cfront_static_fields (struct field_
 
       /* allocate a new fip */
       new = (struct nextfield *) xmalloc (sizeof (struct nextfield));
-      make_cleanup (free, new);
+      make_cleanup (xfree, new);
       memset (new, 0, sizeof (struct nextfield));
       new->next = fip->list;
       fip->list = new;
@@ -3911,7 +3911,7 @@ copy_cfront_struct_fields (struct field_
     {
       /* allocate a new fip */
       new = (struct nextfield *) xmalloc (sizeof (struct nextfield));
-      make_cleanup (free, new);
+      make_cleanup (xfree, new);
       memset (new, 0, sizeof (struct nextfield));
       new->next = fip->list;
       fip->list = new;
@@ -5150,7 +5150,7 @@ end_stabs (void)
 {
   if (type_vector)
     {
-      free ((char *) type_vector);
+      xfree (type_vector);
     }
   type_vector = 0;
   type_vector_length = 0;
@@ -5163,7 +5163,7 @@ finish_global_stabs (struct objfile *obj
   if (global_stabs)
     {
       patch_block_stabs (global_symbols, global_stabs, objfile);
-      free ((PTR) global_stabs);
+      xfree (global_stabs);
       global_stabs = NULL;
     }
 }
Index: stack.c
===================================================================
RCS file: /cvs/src/src/gdb/stack.c,v
retrieving revision 1.9
diff -u -p -r1.9 stack.c
--- stack.c	2000/11/06 20:25:36	1.9
+++ stack.c	2000/12/14 22:57:54
@@ -737,7 +737,7 @@ parse_frame_specification (char *frame_e
 	  addr_string = savestring (frame_exp, p - frame_exp);
 
 	  {
-	    tmp_cleanup = make_cleanup (free, addr_string);
+	    tmp_cleanup = make_cleanup (xfree, addr_string);
 	    args[numargs++] = parse_and_eval_address (addr_string);
 	    do_cleanups (tmp_cleanup);
 	  }
@@ -1216,7 +1216,7 @@ backtrace_command (char *arg, int from_t
   backtrace_command_1 (argPtr, (argIndicatingFullTrace >= 0), from_tty);
 
   if (argIndicatingFullTrace >= 0 && totArgLen > 0)
-    free (argPtr);
+    xfree (argPtr);
 
   if (old_chain)
     do_cleanups (old_chain);
@@ -1959,7 +1959,7 @@ func_command (char *arg, int from_tty)
   while (!found && level == 0);
 
   if (func_bounds)
-    free (func_bounds);
+    xfree (func_bounds);
 
   if (!found)
     printf_filtered ("'%s' not within current stack frame.\n", arg);
Index: sun386-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/sun386-nat.c,v
retrieving revision 1.2
diff -u -p -r1.2 sun386-nat.c
--- sun386-nat.c	2000/07/30 01:48:27	1.2
+++ sun386-nat.c	2000/12/14 22:57:55
@@ -53,7 +53,7 @@ core_file_command (char *filename, int f
      and mark data and stack spaces as empty.  */
 
   if (corefile)
-    free (corefile);
+    xfree (corefile);
   corefile = 0;
 
   if (corechan >= 0)
@@ -70,7 +70,7 @@ core_file_command (char *filename, int f
   if (filename)
     {
       filename = tilde_expand (filename);
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
 
       if (have_inferior_p ())
 	error ("To look at a core file, you must kill the program with \"kill\".");
Index: symfile.c
===================================================================
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 1.21
diff -u -p -r1.21 symfile.c
--- symfile.c	2000/12/01 00:41:27	1.21
+++ symfile.c	2000/12/14 22:57:57
@@ -491,8 +491,8 @@ free_section_addr_info (struct section_a
 
   for (idx = 0; idx < MAX_SECTIONS; idx++)
     if (sap->other[idx].name)
-      free (sap->other[idx].name);
-  free (sap);
+      xfree (sap->other[idx].name);
+  xfree (sap);
 }
 
 
@@ -1061,10 +1061,10 @@ symfile_bfd_open (char *name)
 #endif
   if (desc < 0)
     {
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       perror_with_name (name);
     }
-  free (name);			/* Free 1st new malloc'd copy */
+  xfree (name);			/* Free 1st new malloc'd copy */
   name = absolute_name;		/* Keep 2nd malloc'd copy in bfd */
   /* It'll be freed in free_objfile(). */
 
@@ -1072,7 +1072,7 @@ symfile_bfd_open (char *name)
   if (!sym_bfd)
     {
       close (desc);
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       error ("\"%s\": can't open to read symbols: %s.", name,
 	     bfd_errmsg (bfd_get_error ()));
     }
@@ -1084,7 +1084,7 @@ symfile_bfd_open (char *name)
          on error it does not free all the storage associated with the
          bfd).  */
       bfd_close (sym_bfd);	/* This also closes desc */
-      make_cleanup (free, name);
+      make_cleanup (xfree, name);
       error ("\"%s\": can't read symbols: %s.", name,
 	     bfd_errmsg (bfd_get_error ()));
     }
@@ -1172,7 +1172,7 @@ generic_load (char *args, int from_tty)
   /* Parse the input argument - the user can specify a load offset as
      a second argument. */
   filename = xmalloc (strlen (args) + 1);
-  old_cleanups = make_cleanup (free, filename);
+  old_cleanups = make_cleanup (xfree, filename);
   strcpy (filename, args);
   offptr = strchr (filename, ' ');
   if (offptr != NULL)
@@ -1232,7 +1232,7 @@ generic_load (char *args, int from_tty)
 		block_size = size;
 
 	      buffer = xmalloc (size);
-	      old_chain = make_cleanup (free, buffer);
+	      old_chain = make_cleanup (xfree, buffer);
 
 	      /* Is this really necessary?  I guess it gives the user something
 	         to look at during a long download.  */
@@ -1269,7 +1269,7 @@ generic_load (char *args, int from_tty)
                          that.  remote.c could implement that method
                          using the ``qCRC'' packet.  */
 		      char *check = xmalloc (len);
-		      struct cleanup *verify_cleanups = make_cleanup (free, check);
+		      struct cleanup *verify_cleanups = make_cleanup (xfree, check);
 		      if (target_read_memory (lma, check, len) != 0)
 			error ("Download verify read failed at 0x%s",
 			       paddr (lma));
@@ -1453,7 +1453,7 @@ add_symbol_file_command (char *args, int
 	{
 	  /* The first argument is the file name. */
 	  filename = tilde_expand (arg);
-	  my_cleanups = make_cleanup (free, filename);
+	  my_cleanups = make_cleanup (xfree, filename);
 	}
       else
 	if (argcnt == 1)
@@ -1685,13 +1685,13 @@ reread_symbols (void)
 	      /* obstack_specify_allocation also initializes the obstack so
 	         it is empty.  */
 	      obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
-					  xmalloc, free);
+					  xmalloc, xfree);
 	      obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0,
-					  xmalloc, free);
+					  xmalloc, xfree);
 	      obstack_specify_allocation (&objfile->symbol_obstack, 0, 0,
-					  xmalloc, free);
+					  xmalloc, xfree);
 	      obstack_specify_allocation (&objfile->type_obstack, 0, 0,
-					  xmalloc, free);
+					  xmalloc, xfree);
 	      if (build_objfile_section_table (objfile))
 		{
 		  error ("Can't find the file sections in `%s': %s",
@@ -1841,7 +1841,7 @@ set_ext_lang_command (char *args, int fr
       /*   query ("Really make files of type %s '%s'?", */
       /*          ext_args, language_str (lang));           */
 
-      free (filename_language_table[i].ext);
+      xfree (filename_language_table[i].ext);
       filename_language_table[i].ext = strsave (ext_args);
       filename_language_table[i].lang = lang;
     }
@@ -2954,7 +2954,7 @@ static void
 simple_free_overlay_table (void)
 {
   if (cache_ovly_table)
-    free (cache_ovly_table);
+    xfree (cache_ovly_table);
   cache_novlys = 0;
   cache_ovly_table = NULL;
   cache_ovly_table_base = 0;
@@ -2966,7 +2966,7 @@ static void
 simple_free_overlay_region_table (void)
 {
   if (cache_ovly_region_table)
-    free (cache_ovly_region_table);
+    xfree (cache_ovly_region_table);
   cache_novly_regions = 0;
   cache_ovly_region_table = NULL;
   cache_ovly_region_table_base = 0;
Index: symmisc.c
===================================================================
RCS file: /cvs/src/src/gdb/symmisc.c,v
retrieving revision 1.3
diff -u -p -r1.3 symmisc.c
--- symmisc.c	2000/07/30 01:48:27	1.3
+++ symmisc.c	2000/12/14 22:57:58
@@ -524,7 +524,7 @@ Arguments missing: an output file name a
     }
 
   filename = tilde_expand (filename);
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
 
   outfile = gdb_fopen (filename, FOPEN_WT);
   if (outfile == 0)
@@ -758,7 +758,7 @@ maintenance_print_psymbols (char *args, 
     }
 
   filename = tilde_expand (filename);
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
 
   outfile = gdb_fopen (filename, FOPEN_WT);
   if (outfile == 0)
@@ -901,7 +901,7 @@ maintenance_print_msymbols (char *args, 
     }
 
   filename = tilde_expand (filename);
-  make_cleanup (free, filename);
+  make_cleanup (xfree, filename);
 
   outfile = gdb_fopen (filename, FOPEN_WT);
   if (outfile == 0)
Index: symtab.c
===================================================================
RCS file: /cvs/src/src/gdb/symtab.c,v
retrieving revision 1.24
diff -u -p -r1.24 symtab.c
--- symtab.c	2000/12/01 00:41:27	1.24
+++ symtab.c	2000/12/14 22:57:59
@@ -595,7 +595,7 @@ lookup_symbol (const char *name, const s
   returnval = lookup_symbol_aux (modified_name, block, namespace,
 				 is_a_field_of_this, symtab);
   if (needtofreename)
-    free (modified_name2);
+    xfree (modified_name2);
 
   return returnval;	 
 }
@@ -2278,7 +2278,7 @@ free_search_symbols (struct symbol_searc
   for (p = symbols; p != NULL; p = next)
     {
       next = p->next;
-      free (p);
+      xfree (p);
     }
 }
 
@@ -2637,7 +2637,7 @@ print_symbol_info (namespace_enum kind, 
       else
 	{
 	  fputs_filtered (demangled_name, stream);
-	  free (demangled_name);
+	  xfree (demangled_name);
 	}
 #endif
     }
@@ -2876,7 +2876,7 @@ completion_list_add_name (char *symname,
 	  {
 	    if (STREQ (new, return_val[i]))
 	      {
-		free (new);
+		xfree (new);
 		return;
 	      }
 	  }
@@ -3183,7 +3183,7 @@ overload_list_add_symbol (struct symbol 
   /* skip symbols that cannot match */
   if (strcmp (sym_name, oload_name) != 0)
     {
-      free (sym_name);
+      xfree (sym_name);
       return;
     }
 
@@ -3206,7 +3206,7 @@ overload_list_add_symbol (struct symbol 
   sym_return_val[sym_return_val_index++] = sym;
   sym_return_val[sym_return_val_index] = NULL;
 
-  free (sym_name);
+  xfree (sym_name);
 }
 
 /* Return a null-terminated list of pointers to function symbols that
@@ -3327,7 +3327,7 @@ make_symbol_overload_list (struct symbol
       }
   }
 
-  free (oload_name);
+  xfree (oload_name);
 
   return (sym_return_val);
 }
Index: target.c
===================================================================
RCS file: /cvs/src/src/gdb/target.c,v
retrieving revision 1.16
diff -u -p -r1.16 target.c
--- target.c	2000/11/21 10:26:07	1.16
+++ target.c	2000/12/14 22:58:01
@@ -664,7 +664,7 @@ push_target (struct target_ops *t)
 	else
 	  target_stack = cur->next;	/* Unchain first on list */
 	tmp = cur->next;
-	free (cur);
+	xfree (cur);
 	cur = tmp;
       }
 
@@ -718,7 +718,7 @@ unpush_target (struct target_ops *t)
   else
     prev->next = cur->next;
 
-  free (cur);			/* Release the target_stack_item */
+  xfree (cur);			/* Release the target_stack_item */
 
   update_current_target ();
   cleanup_target (&current_target);
Index: thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/thread-db.c,v
retrieving revision 1.1
diff -u -p -r1.1 thread-db.c
--- thread-db.c	2000/09/03 18:41:28	1.1
+++ thread-db.c	2000/12/14 22:58:01
@@ -148,7 +148,7 @@ restore_inferior_pid (void *arg)
 {
   int *saved_pid_ptr = arg;
   inferior_pid = *saved_pid_ptr;
-  free (arg);
+  xfree (arg);
 }
 
 static struct cleanup *
Index: thread.c
===================================================================
RCS file: /cvs/src/src/gdb/thread.c,v
retrieving revision 1.8
diff -u -p -r1.8 thread.c
--- thread.c	2000/11/17 03:49:41	1.8
+++ thread.c	2000/12/14 22:58:01
@@ -74,9 +74,9 @@ free_thread (struct thread_info *tp)
   /* FIXME: do I ever need to call the back-end to give it a
      chance at this private data before deleting the thread?  */
   if (tp->private)
-    free (tp->private);
+    xfree (tp->private);
 
-  free (tp);
+  xfree (tp);
 }
 
 void
@@ -491,7 +491,7 @@ do_restore_current_thread_cleanup (void 
 {
   struct current_thread_cleanup *old = arg;
   restore_current_thread (old->inferior_pid);
-  free (old);
+  xfree (old);
 }
 
 static struct cleanup *
@@ -532,7 +532,7 @@ thread_apply_all_command (char *cmd, int
   /* Save a copy of the command in case it is clobbered by
      execute_command */
   saved_cmd = strdup (cmd);
-  saved_cmd_cleanup_chain = make_cleanup (free, (void *) saved_cmd);
+  saved_cmd_cleanup_chain = make_cleanup (xfree, (void *) saved_cmd);
   for (tp = thread_list; tp; tp = tp->next)
     if (thread_alive (tp))
       {
@@ -575,7 +575,7 @@ thread_apply_command (char *tidlist, int
   /* Save a copy of the command in case it is clobbered by
      execute_command */
   saved_cmd = strdup (cmd);
-  saved_cmd_cleanup_chain = make_cleanup (free, (void *) saved_cmd);
+  saved_cmd_cleanup_chain = make_cleanup (xfree, (void *) saved_cmd);
   while (tidlist < cmd)
     {
       struct thread_info *tp;
Index: top.c
===================================================================
RCS file: /cvs/src/src/gdb/top.c,v
retrieving revision 1.24
diff -u -p -r1.24 top.c
--- top.c	2000/12/01 18:01:38	1.24
+++ top.c	2000/12/14 22:58:03
@@ -657,7 +657,7 @@ void
 do_chdir_cleanup (void *old_dir)
 {
   chdir (old_dir);
-  free (old_dir);
+  xfree (old_dir);
 }
 #endif
 
@@ -1023,7 +1023,7 @@ gdb_readline (char *prompt_arg)
 	       if we are called again fgetc will still return EOF and
 	       we'll return NULL then.  */
 	    break;
-	  free (result);
+	  xfree (result);
 	  return NULL;
 	}
 
@@ -1275,7 +1275,7 @@ command_line_input (char *prompt_arg, in
       while (*p1)
 	*p++ = *p1++;
 
-      free (rl);		/* Allocated in readline.  */
+      xfree (rl);		/* Allocated in readline.  */
 
       if (p == linebuffer || *(p - 1) != '\\')
 	break;
@@ -1323,7 +1323,7 @@ command_line_input (char *prompt_arg, in
 	  /* If there was an error, call this function again.  */
 	  if (expanded < 0)
 	    {
-	      free (history_value);
+	      xfree (history_value);
 	      return command_line_input (prompt_arg, repeat, annotation_suffix);
 	    }
 	  if (strlen (history_value) > linelength)
@@ -1333,7 +1333,7 @@ command_line_input (char *prompt_arg, in
 	    }
 	  strcpy (linebuffer, history_value);
 	  p = linebuffer + strlen (linebuffer);
-	  free (history_value);
+	  xfree (history_value);
 	}
     }
 
@@ -1574,7 +1574,7 @@ get_prompt_1 (void *data)
 		         from bad user-supplied format string? */
 		      sprintf (outp, fmt[0] == 0 ? default_fmt : fmt,
 			       tmp);
-		      free (tmp);
+		      xfree (tmp);
 		    }
 		  else
 		    {
@@ -1692,7 +1692,7 @@ set_prompt (char *s)
 /* ??rehrauer: I don't know why this fails, since it looks as though
    assignments to prompt are wrapped in calls to savestring...
    if (prompt != NULL)
-   free (prompt);
+   xfree (prompt);
  */
   if (event_loop_p)
     PROMPT (0) = savestring (s, strlen (s));
Index: tracepoint.c
===================================================================
RCS file: /cvs/src/src/gdb/tracepoint.c,v
retrieving revision 1.14
diff -u -p -r1.14 tracepoint.c
--- tracepoint.c	2000/12/01 00:41:27	1.14
+++ tracepoint.c	2000/12/14 22:58:04
@@ -341,7 +341,7 @@ set_raw_tracepoint (struct symtab_and_li
   struct cleanup *old_chain;
 
   t = (struct tracepoint *) xmalloc (sizeof (struct tracepoint));
-  old_chain = make_cleanup (free, t);
+  old_chain = make_cleanup (xfree, t);
   memset (t, 0, sizeof (*t));
   t->address = sal.pc;
   if (sal.symtab == NULL)
@@ -576,13 +576,13 @@ tracepoint_operation (struct tracepoint 
 	delete_tracepoint_hook (t);
 
       if (t->addr_string)
-	free (t->addr_string);
+	xfree (t->addr_string);
       if (t->source_file)
-	free (t->source_file);
+	xfree (t->source_file);
       if (t->actions)
 	free_actions (t);
 
-      free (t);
+      xfree (t);
       break;
     }
 }
@@ -971,7 +971,7 @@ validate_actionline (char **line, struct
 	    error ("expression too complicated, try simplifying");
 
 	  ax_reqs (aexpr, &areqs);
-	  (void) make_cleanup (free, areqs.reg_mask);
+	  (void) make_cleanup (xfree, areqs.reg_mask);
 
 	  if (areqs.flaw != agent_flaw_none)
 	    error ("malformed expression");
@@ -1022,8 +1022,8 @@ free_actions (struct tracepoint *t)
     {
       next = line->next;
       if (line->action)
-	free (line->action);
-      free (line);
+	xfree (line->action);
+      xfree (line);
     }
   t->actions = NULL;
 }
@@ -1457,9 +1457,9 @@ free_actions_list (char **actions_list)
     return;
 
   for (ndx = 0; actions_list[ndx]; ndx++)
-    free (actions_list[ndx]);
+    xfree (actions_list[ndx]);
 
-  free (actions_list);
+  xfree (actions_list);
 }
 
 /* render all actions into gdb protocol */
@@ -2098,7 +2098,7 @@ trace_find_line_command (char *args, int
 	  sal = sals.sals[0];
 	}
 
-      old_chain = make_cleanup (free, sals.sals);
+      old_chain = make_cleanup (xfree, sals.sals);
       if (sal.symtab == 0)
 	{
 	  printf_filtered ("TFIND: No line number information available");
Index: ui-file.c
===================================================================
RCS file: /cvs/src/src/gdb/ui-file.c,v
retrieving revision 1.4
diff -u -p -r1.4 ui-file.c
--- ui-file.c	2000/07/30 01:48:27	1.4
+++ ui-file.c	2000/12/14 22:58:05
@@ -68,7 +68,7 @@ void
 ui_file_delete (struct ui_file *file)
 {
   file->to_delete (file);
-  free (file);
+  xfree (file);
 }
 
 static int
@@ -316,8 +316,8 @@ mem_file_delete (struct ui_file *file)
   if (stream->magic != &mem_file_magic)
     internal_error ("mem_file_delete: bad magic number");
   if (stream->buffer != NULL)
-    free (stream->buffer);
-  free (stream);
+    xfree (stream->buffer);
+  xfree (stream);
 }
 
 struct ui_file *
@@ -420,7 +420,7 @@ stdio_file_delete (struct ui_file *file)
     {
       fclose (stdio->file);
     }
-  free (stdio);
+  xfree (stdio);
 }
 
 static void
Index: ui-out.c
===================================================================
RCS file: /cvs/src/src/gdb/ui-out.c,v
retrieving revision 1.5
diff -u -p -r1.5 ui-out.c
--- ui-out.c	2000/10/31 05:49:55	1.5
+++ ui-out.c	2000/12/14 22:58:05
@@ -235,7 +235,7 @@ ui_out_table_end (struct ui_out *uiout)
   uo_table_end (uiout);
 
   if (uiout->table_id)
-    free (uiout->table_id);
+    xfree (uiout->table_id);
   clear_header_list (uiout);
 }
 
@@ -315,7 +315,7 @@ ui_out_field_stream (struct ui_out *uiou
 {
   long length;
   char *buffer = ui_file_xstrdup (buf->stream, &length);
-  struct cleanup *old_cleanup = make_cleanup (free, buffer);
+  struct cleanup *old_cleanup = make_cleanup (xfree, buffer);
   if (length > 0)
     ui_out_field_string (uiout, fldname, buffer);
   else
@@ -425,7 +425,7 @@ void
 ui_out_stream_delete (struct ui_stream *buf)
 {
   ui_file_delete (buf->stream);
-  free (buf);
+  xfree (buf);
 }
 
 static void
@@ -770,8 +770,8 @@ clear_header_list (struct ui_out *uiout)
       uiout->headercurr = uiout->headerfirst;
       uiout->headerfirst = uiout->headerfirst->next;
       if (uiout->headercurr->colhdr != NULL)
-	free (uiout->headercurr->colhdr);
-      free (uiout->headercurr);
+	xfree (uiout->headercurr->colhdr);
+      xfree (uiout->headercurr);
     }
   uiout->headerlast = NULL;
   uiout->headercurr = NULL;
Index: umax-xdep.c
===================================================================
RCS file: /cvs/src/src/gdb/umax-xdep.c,v
retrieving revision 1.2
diff -u -p -r1.2 umax-xdep.c
--- umax-xdep.c	2000/07/30 01:48:27	1.2
+++ umax-xdep.c	2000/12/14 22:58:05
@@ -48,7 +48,7 @@ core_file_command (char *filename, int f
      and mark data and stack spaces as empty.  */
 
   if (corefile)
-    free (corefile);
+    xfree (corefile);
   corefile = 0;
 
   if (corechan >= 0)
@@ -65,7 +65,7 @@ core_file_command (char *filename, int f
   if (filename)
     {
       filename = tilde_expand (filename);
-      make_cleanup (free, filename);
+      make_cleanup (xfree, filename);
 
       if (have_inferior_p ())
 	error ("To look at a core file, you must kill the program with \"kill\".");
Index: utils.c
===================================================================
RCS file: /cvs/src/src/gdb/utils.c,v
retrieving revision 1.24
diff -u -p -r1.24 utils.c
--- utils.c	2000/12/05 03:15:31	1.24
+++ utils.c	2000/12/14 22:58:07
@@ -295,7 +295,7 @@ do_my_cleanups (register struct cleanup 
     {
       *pmy_chain = ptr->next;	/* Do this first incase recursion */
       (*ptr->function) (ptr->arg);
-      free (ptr);
+      xfree (ptr);
     }
 }
 
@@ -328,7 +328,7 @@ discard_my_cleanups (register struct cle
   while ((ptr = *pmy_chain) != old_chain)
     {
       *pmy_chain = ptr->next;
-      free (ptr);
+      xfree (ptr);
     }
 }
 
@@ -389,7 +389,7 @@ free_current_contents (void *ptr)
     internal_error ("free_current_contents: NULL pointer");
   if (*location != NULL)
     {
-      free (*location);
+      xfree (*location);
       *location = NULL;
     }
 }
@@ -449,7 +449,7 @@ do_all_continuations (void)
        (continuation_ptr->continuation_hook) (continuation_ptr->arg_list);
        saved_continuation = continuation_ptr;
        continuation_ptr = continuation_ptr->next;
-       free (saved_continuation);
+       xfree (saved_continuation);
      }
 }
 
@@ -464,7 +464,7 @@ discard_all_continuations (void)
     {
       continuation_ptr = cmd_continuation;
       cmd_continuation = continuation_ptr->next;
-      free (continuation_ptr);
+      xfree (continuation_ptr);
     }
 }
 
@@ -511,7 +511,7 @@ do_all_intermediate_continuations (void)
        (continuation_ptr->continuation_hook) (continuation_ptr->arg_list);
        saved_continuation = continuation_ptr;
        continuation_ptr = continuation_ptr->next;
-       free (saved_continuation);
+       xfree (saved_continuation);
      }
 }
 
@@ -526,7 +526,7 @@ discard_all_intermediate_continuations (
     {
       continuation_ptr = intermediate_continuation;
       intermediate_continuation = continuation_ptr->next;
-      free (continuation_ptr);
+      xfree (continuation_ptr);
     }
 }
 
@@ -621,7 +621,7 @@ verror (const char *string, va_list args
   vfprintf_filtered (gdb_lasterr, string, args);
   /* Retrieve the last error and print it to gdb_stderr */
   err_string = error_last_message ();
-  err_string_cleanup = make_cleanup (free, err_string);
+  err_string_cleanup = make_cleanup (xfree, err_string);
   fputs_filtered (err_string, gdb_stderr);
   fprintf_filtered (gdb_stderr, "\n");
   do_cleanups (err_string_cleanup);
@@ -642,7 +642,7 @@ error_stream (struct ui_file *stream)
 {
   long size;
   char *msg = ui_file_xstrdup (stream, &size);
-  make_cleanup (free, msg);
+  make_cleanup (xfree, msg);
   error ("%s", msg);
 }
 
@@ -932,7 +932,7 @@ mrealloc (PTR md, PTR ptr, size_t size)
 void
 mfree (PTR md, PTR ptr)
 {
-  free (ptr);
+  xfree (ptr);
 }
 
 #endif /* USE_MMALLOC */
@@ -1077,6 +1077,16 @@ xrealloc (PTR ptr, size_t size)
 {
   return (xmrealloc ((PTR) NULL, ptr, size));
 }
+
+/* Free up space allocated by one of xmalloc(), xcalloc(), or
+   xrealloc().  */
+
+void
+xfree (void *ptr)
+{
+  if (ptr != NULL)
+    free (ptr);
+}
 
 
 /* Like asprintf/vasprintf but get an internal_error if the call
@@ -1636,7 +1646,7 @@ prompt_for_continue (void)
 	  else
 	    async_request_quit (0);
 	}
-      free (ignore);
+      xfree (ignore);
     }
   immediate_quit--;
 
@@ -1982,7 +1992,7 @@ vfprintf_maybe_filtered (struct ui_file 
   struct cleanup *old_cleanups;
 
   xvasprintf (&linebuffer, format, args);
-  old_cleanups = make_cleanup (free, linebuffer);
+  old_cleanups = make_cleanup (xfree, linebuffer);
   fputs_maybe_filtered (linebuffer, stream, filter);
   do_cleanups (old_cleanups);
 }
@@ -2001,7 +2011,7 @@ vfprintf_unfiltered (struct ui_file *str
   struct cleanup *old_cleanups;
 
   xvasprintf (&linebuffer, format, args);
-  old_cleanups = make_cleanup (free, linebuffer);
+  old_cleanups = make_cleanup (xfree, linebuffer);
   fputs_unfiltered (linebuffer, stream);
   do_cleanups (old_cleanups);
 }
@@ -2112,7 +2122,7 @@ n_spaces (int n)
   if (n > max_spaces)
     {
       if (spaces)
-	free (spaces);
+	xfree (spaces);
       spaces = (char *) xmalloc (n + 1);
       for (t = spaces + n; t != spaces;)
 	*--t = ' ';
@@ -2170,7 +2180,7 @@ fprintf_symbol_filtered (struct ui_file 
 	  fputs_filtered (demangled ? demangled : name, stream);
 	  if (demangled != NULL)
 	    {
-	      free (demangled);
+	      xfree (demangled);
 	    }
 	}
     }
Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.27
diff -u -p -r1.27 valops.c
--- valops.c	2000/11/08 05:10:18	1.27
+++ valops.c	2000/12/14 22:58:11
@@ -2788,7 +2788,7 @@ find_overload_match (struct type **arg_t
 	  default:
 	    break;
 	  }
-      free (parm_types);
+      xfree (parm_types);
       if (overload_debug)
 	{
 	  if (method)
@@ -2860,7 +2860,7 @@ find_overload_match (struct type **arg_t
   else
     {
       *symp = oload_syms[oload_champ];
-      free (func_name);
+      xfree (func_name);
     }
 
   return oload_incompatible ? 100 : (oload_non_standard ? 10 : 0);
Index: valprint.c
===================================================================
RCS file: /cvs/src/src/gdb/valprint.c,v
retrieving revision 1.8
diff -u -p -r1.8 valprint.c
--- valprint.c	2000/11/08 05:10:18	1.8
+++ valprint.c	2000/12/14 22:58:11
@@ -990,7 +990,7 @@ print_decimal_chars (struct ui_file *str
     {
       fprintf_filtered (stream, "%1d", digits[i]);
     }
-  free (digits);
+  xfree (digits);
 
   fprintf_filtered (stream, local_decimal_format_suffix ());
 }
@@ -1202,7 +1202,7 @@ val_print_string (CORE_ADDR addr, int le
     {
       buffer = (char *) xmalloc (len * width);
       bufptr = buffer;
-      old_chain = make_cleanup (free, buffer);
+      old_chain = make_cleanup (xfree, buffer);
 
       nfetch = partial_memory_read (addr, bufptr, len * width, &errcode)
 	/ width;
@@ -1225,7 +1225,7 @@ val_print_string (CORE_ADDR addr, int le
 	      buffer = (char *) xrealloc (buffer, (nfetch + bufsize) * width);
 	    }
 
-	  old_chain = make_cleanup (free, buffer);
+	  old_chain = make_cleanup (xfree, buffer);
 	  bufptr = buffer + bufsize * width;
 	  bufsize += nfetch;
 
Index: values.c
===================================================================
RCS file: /cvs/src/src/gdb/values.c,v
retrieving revision 1.11
diff -u -p -r1.11 values.c
--- values.c	2000/11/10 01:19:47	1.11
+++ values.c	2000/12/14 22:58:12
@@ -331,9 +331,9 @@ clear_value_history (void)
     {
       for (i = 0; i < VALUE_HISTORY_CHUNK; i++)
 	if ((val = value_history_chain->values[i]) != NULL)
-	  free ((PTR) val);
+	  xfree (val);
       next = value_history_chain->next;
-      free ((PTR) value_history_chain);
+      xfree (value_history_chain);
       value_history_chain = next;
     }
   value_history_count = 0;
@@ -475,7 +475,7 @@ set_internalvar (struct internalvar *var
      something in the value chain (i.e., before release_value is
      called), because after the error free_all_values will get called before
      long.  */
-  free ((PTR) var->value);
+  xfree (var->value);
   var->value = newval;
   release_value (newval);
   /* End code which must not call error().  */
@@ -499,9 +499,9 @@ clear_internalvars (void)
     {
       var = internalvars;
       internalvars = var->next;
-      free ((PTR) var->name);
-      free ((PTR) var->value);
-      free ((PTR) var);
+      xfree (var->name);
+      xfree (var->value);
+      xfree (var);
     }
 }
 
Index: varobj.c
===================================================================
RCS file: /cvs/src/src/gdb/varobj.c,v
retrieving revision 1.13
diff -u -p -r1.13 varobj.c
--- varobj.c	2000/11/29 14:41:34	1.13
+++ varobj.c	2000/12/14 22:58:13
@@ -1065,7 +1065,7 @@ delete_variable_1 (struct cpstack **resu
 	vc->child->parent = NULL;
       delete_variable_1 (resultp, delcountp, vc->child, 0, only_children_p);
       next = vc->next;
-      free (vc);
+      xfree (vc);
     }
 
   /* if we were called to delete only the children we are done here */
@@ -1182,7 +1182,7 @@ uninstall_variable (struct varobj *var)
   else
     prev->next = cv->next;
 
-  free (cv);
+  xfree (cv);
 
   /* If root, remove varobj from root list */
   if (var->root->rootvar == var)
@@ -1507,7 +1507,7 @@ vpop (struct vstack **pstack)
   s = *pstack;
   v = s->var;
   *pstack = (*pstack)->next;
-  free (s);
+  xfree (s);
 
   return v;
 }
@@ -1537,7 +1537,7 @@ cppop (struct cpstack **pstack)
   s = *pstack;
   v = s->name;
   *pstack = (*pstack)->next;
-  free (s);
+  xfree (s);
 
   return v;
 }
Index: win32-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/win32-nat.c,v
retrieving revision 1.17
diff -u -p -r1.17 win32-nat.c
--- win32-nat.c	2000/11/28 17:27:38	1.17
+++ win32-nat.c	2000/12/14 22:58:15
@@ -249,7 +249,7 @@ child_init_thread_list (void)
       thread_info *here = th->next;
       th->next = here->next;
       (void) CloseHandle (here->h);
-      free (here);
+      xfree (here);
     }
 }
 
@@ -273,7 +273,7 @@ child_delete_thread (DWORD id)
       thread_info *here = th->next;
       th->next = here->next;
       CloseHandle (here->h);
-      free (here);
+      xfree (here);
     }
 }
 
@@ -619,7 +619,7 @@ child_clear_solibs (void)
   while ((so = so1) != NULL)
     {
       so1 = so->next;
-      free (so);
+      xfree (so);
     }
 
   solib_start.next = NULL;
@@ -715,7 +715,7 @@ handle_output_debug_string (struct targe
 	ourstatus->kind = TARGET_WAITKIND_STOPPED;
     }
 
-  free (s);
+  xfree (s);
   return gotasig;
 }
 
@@ -1610,9 +1610,9 @@ core_section_load_dll_symbols (bfd * abf
 
 out:
   if (buf)
-    free (buf);
+    xfree (buf);
   if (dll_name)
-    free (dll_name);
+    xfree (dll_name);
   return;
 }
 
Index: wince.c
===================================================================
RCS file: /cvs/src/src/gdb/wince.c,v
retrieving revision 1.10
diff -u -p -r1.10 wince.c
--- wince.c	2000/11/03 22:00:56	1.10
+++ wince.c	2000/12/14 22:58:17
@@ -1075,7 +1075,7 @@ child_init_thread_list (void)
       thread_info *here = th->next;
       th->next = here->next;
       (void) close_handle (here->h);
-      free (here);
+      xfree (here);
     }
 }
 
@@ -1099,7 +1099,7 @@ child_delete_thread (DWORD id)
       thread_info *here = th->next;
       th->next = here->next;
       close_handle (here->h);
-      free (here);
+      xfree (here);
     }
 }
 
Index: xcoffread.c
===================================================================
RCS file: /cvs/src/src/gdb/xcoffread.c,v
retrieving revision 1.10
diff -u -p -r1.10 xcoffread.c
--- xcoffread.c	2000/11/15 19:58:14	1.10
+++ xcoffread.c	2000/12/14 22:58:17
@@ -443,7 +443,7 @@ arrange_linetable (struct linetable *old
 
   if (function_count == 0)
     {
-      free (fentry);
+      xfree (fentry);
       return oldLineTb;
     }
   else if (function_count > 1)
@@ -473,7 +473,7 @@ arrange_linetable (struct linetable *old
 	   ++jj, ++newline)
 	newLineTb->item[newline] = oldLineTb->item[jj];
     }
-  free (fentry);
+  xfree (fentry);
   newLineTb->nitems = oldLineTb->nitems - function_count;
   return newLineTb;
 }
@@ -675,7 +675,7 @@ process_linenos (CORE_ADDR start, CORE_A
 	}
       else
 	{
-	  free (lv);
+	  xfree (lv);
 	  current_subfile->line_vector = lineTb;
 	}
 
@@ -725,7 +725,7 @@ process_linenos (CORE_ADDR start, CORE_A
 	    if (fakename == NULL)
 	      fakename = " ?";
 	    start_subfile (fakename, (char *) 0);
-	    free (current_subfile->name);
+	    xfree (current_subfile->name);
 	  }
 	  current_subfile->name = xstrdup (inclTable[ii].name);
 #endif
@@ -740,7 +740,7 @@ process_linenos (CORE_ADDR start, CORE_A
 	    }
 	  else
 	    {
-	      free (lv);
+	      xfree (lv);
 	      current_subfile->line_vector = lineTb;
 	    }
 
@@ -1898,7 +1898,7 @@ xcoff_symfile_finish (struct objfile *ob
   /* Start with a fresh include table for the next objfile.  */
   if (inclTable)
     {
-      free (inclTable);
+      xfree (inclTable);
       inclTable = NULL;
     }
   inclIndx = inclLength = inclDepth = 0;
Index: cli/cli-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v
retrieving revision 1.1
diff -u -p -r1.1 cli-cmds.c
--- cli-cmds.c	2000/12/01 18:01:38	1.1
+++ cli-cmds.c	2000/12/14 22:58:18
@@ -227,7 +227,7 @@ complete_command (char *arg, int from_tt
        completion = line_completion_function (arg, ++i, arg, argpoint))
     {
       printf_unfiltered ("%s\n", completion);
-      free (completion);
+      xfree (completion);
     }
 }
 
@@ -287,7 +287,7 @@ cd_command (char *dir, int from_tty)
     error_no_arg ("new working directory");
 
   dir = tilde_expand (dir);
-  make_cleanup (free, dir);
+  make_cleanup (xfree, dir);
 
   if (chdir (dir) < 0)
     perror_with_name (dir);
@@ -321,7 +321,7 @@ cd_command (char *dir, int from_tty)
 	current_directory = concat (current_directory, dir, NULL);
       else
 	current_directory = concat (current_directory, SLASH_STRING, dir, NULL);
-      free (dir);
+      xfree (dir);
     }
 
   /* Now simplify any occurrences of `.' and `..' in the pathname.  */
@@ -383,7 +383,7 @@ source_command (char *args, int from_tty
     }
 
   file = tilde_expand (file);
-  old_cleanups = make_cleanup (free, file);
+  old_cleanups = make_cleanup (xfree, file);
 
   stream = fopen (file, FOPEN_RT);
   if (!stream)
Index: cli/cli-decode.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v
retrieving revision 1.4
diff -u -p -r1.4 cli-decode.c
--- cli-decode.c	2000/12/06 23:53:03	1.4
+++ cli-decode.c	2000/12/14 22:58:19
@@ -346,7 +346,7 @@ delete_cmd (char *name, struct cmd_list_
       if ((*list)->hookee_post)
       (*list)->hookee_post->hook_post = 0; /* Hook slips out of its bottom  */
       p = (*list)->next;
-      free ((PTR) * list);
+      xfree (* list);
       *list = p;
     }
 
@@ -361,7 +361,7 @@ delete_cmd (char *name, struct cmd_list_
             c->next->hookee_post->hook_post = 0; /* remove post hook */
                                                /* :( no fishing metaphore */
 	    p = c->next->next;
-	    free ((PTR) c->next);
+	    xfree (c->next);
 	    c->next = p;
 	  }
 	else
@@ -626,7 +626,7 @@ print_doc_line (struct ui_file *stream, 
   if (p - str > line_size - 1)
     {
       line_size = p - str + 1;
-      free ((PTR) line_buffer);
+      xfree (line_buffer);
       line_buffer = (char *) xmalloc (line_size);
     }
   strncpy (line_buffer, str, p - str);
@@ -1258,7 +1258,7 @@ complete_on_cmdlist (struct cmd_list_ele
 
   if (matches == 0)
     {
-      free ((PTR) matchlist);
+      xfree (matchlist);
       matchlist = 0;
     }
   else
@@ -1329,7 +1329,7 @@ complete_on_enum (const char *enumlist[]
 
   if (matches == 0)
     {
-      free ((PTR) matchlist);
+      xfree (matchlist);
       matchlist = 0;
     }
   else
Index: cli/cli-script.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-script.c,v
retrieving revision 1.1
diff -u -p -r1.1 cli-script.c
--- cli-script.c	2000/12/01 18:01:38	1.1
+++ cli-script.c	2000/12/14 22:58:19
@@ -516,7 +516,7 @@ arg_cleanup (void *ignore)
     internal_error ("Internal error, arg_cleanup called with no user args.\n");
 
   user_args = user_args->next;
-  free (oargs);
+  xfree (oargs);
 }
 
 /* Bind the incomming arguments for a user defined command to
@@ -701,7 +701,7 @@ realloc_body_list (struct command_line *
 
   memcpy (body_list, command->body_list, sizeof (struct command_line *) * n);
 
-  free (command->body_list);
+  xfree (command->body_list);
   command->body_list = body_list;
   command->body_count = new_length;
 }
@@ -1022,8 +1022,8 @@ free_command_lines (struct command_line 
 	    free_command_lines (blist);
 	}
       next = l->next;
-      free (l->line);
-      free ((PTR) l);
+      xfree (l->line);
+      xfree (l);
       l = next;
     }
 }
@@ -1192,7 +1192,7 @@ document_command (char *comname, int fro
   doclines = read_command_lines (tmpbuf, from_tty);
 
   if (c->doc)
-    free (c->doc);
+    xfree (c->doc);
 
   {
     register struct command_line *cl1;
@@ -1266,7 +1266,7 @@ script_from_file (FILE *stream, char *fi
   source_file_name = file;
   source_pre_error = error_pre_print == NULL ? "" : error_pre_print;
   source_pre_error = savestring (source_pre_error, strlen (source_pre_error));
-  make_cleanup (free, source_pre_error);
+  make_cleanup (xfree, source_pre_error);
   /* This will get set every time we read a line.  So it won't stay "" for
      long.  */
   error_pre_print = "";
Index: cli/cli-setshow.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-setshow.c,v
retrieving revision 1.1
diff -u -p -r1.1 cli-setshow.c
--- cli-setshow.c	2000/12/01 18:01:38	1.1
+++ cli-setshow.c	2000/12/14 22:58:20
@@ -146,7 +146,7 @@ do_setshow_command (char *arg, int from_
 	    *q++ = '\0';
 	    new = (char *) xrealloc (new, q - new);
 	    if (*(char **) c->var != NULL)
-	      free (*(char **) c->var);
+	      xfree (*(char **) c->var);
 	    *(char **) c->var = new;
 	  }
 	  break;
@@ -154,14 +154,14 @@ do_setshow_command (char *arg, int from_
 	  if (arg == NULL)
 	    arg = "";
 	  if (*(char **) c->var != NULL)
-	    free (*(char **) c->var);
+	    xfree (*(char **) c->var);
 	  *(char **) c->var = savestring (arg, strlen (arg));
 	  break;
 	case var_filename:
 	  if (arg == NULL)
 	    error_no_arg ("filename to set it to.");
 	  if (*(char **) c->var != NULL)
-	    free (*(char **) c->var);
+	    xfree (*(char **) c->var);
 	  *(char **) c->var = tilde_expand (arg);
 	  break;
 	case var_boolean:
Index: mi/mi-cmd-disas.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmd-disas.c,v
retrieving revision 1.5
diff -u -p -r1.5 mi-cmd-disas.c
--- mi-cmd-disas.c	2000/05/16 05:07:53	1.5
+++ mi-cmd-disas.c	2000/12/14 22:58:20
@@ -428,9 +428,9 @@ mi_cmd_disassemble (char *command, char 
 		  ui_out_field_int (uiout, "offset", offset);
 		}
 	      if (filename != NULL)
-		free (filename);
+		xfree (filename);
 	      if (name != NULL)
-		free (name);
+		xfree (name);
 
 	      ui_file_rewind (stb->stream);
 	      pc += (*tm_print_insn) (pc, &di);
@@ -476,9 +476,9 @@ mi_cmd_disassemble (char *command, char 
 	      ui_out_field_int (uiout, "offset", offset);
 	    }
 	  if (filename != NULL)
-	    free (filename);
+	    xfree (filename);
 	  if (name != NULL)
-	    free (name);
+	    xfree (name);
 
 	  ui_file_rewind (stb->stream);
 	  pc += (*tm_print_insn) (pc, &di);
Index: mi/mi-cmd-var.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmd-var.c,v
retrieving revision 1.6
diff -u -p -r1.6 mi-cmd-var.c
--- mi-cmd-var.c	2000/11/20 02:06:19	1.6
+++ mi-cmd-var.c	2000/12/14 22:58:21
@@ -64,13 +64,13 @@ mi_cmd_var_create (char *command, char *
   old_cleanups = make_cleanup (free_current_contents, &name);
 
   frame = xstrdup (argv[1]);
-  old_cleanups = make_cleanup (free, frame);
+  old_cleanups = make_cleanup (xfree, frame);
 
   expr = xstrdup (argv[2]);
 
   if (strcmp (name, "-") == 0)
     {
-      free (name);
+      xfree (name);
       name = varobj_gen_name ();
     }
   else if (!isalpha (*name))
@@ -104,7 +104,7 @@ mi_cmd_var_create (char *command, char *
   else
     {
       ui_out_field_string (uiout, "type", type);
-      free (type);
+      xfree (type);
     }
 
   do_cleanups (old_cleanups);
@@ -147,9 +147,9 @@ mi_cmd_var_delete (char *command, char *
       if (strcmp (name, "-c") != 0)
 	error ("mi_cmd_var_delete: Invalid option.");
       children_only_p = 1;
-      free (name);
+      xfree (name);
       name = xstrdup (expr);
-      free (expr);
+      xfree (expr);
     }
 
   /* If we didn't error out, now NAME contains the name of the
@@ -289,7 +289,7 @@ mi_cmd_var_list_children (char *command,
       cc++;
     }
   ui_out_list_end (uiout);
-  free (childlist);
+  xfree (childlist);
   return MI_CMD_DONE;
 }
 
@@ -433,7 +433,7 @@ mi_cmd_var_update (char *command, char *
 	  varobj_update_one (*cr);
 	  cr++;
 	}
-      free (rootlist);
+      xfree (rootlist);
       ui_out_list_end (uiout);
     }
   else
@@ -494,7 +494,7 @@ varobj_update_one (struct varobj *var)
 	  ui_out_field_string (uiout, "type_changed", "false");
 	  cc++;
 	}
-      free (changelist);
+      xfree (changelist);
       return 1;
     }
   return 1;
Index: mi/mi-console.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-console.c,v
retrieving revision 1.3
diff -u -p -r1.3 mi-console.c
--- mi-console.c	2000/05/16 05:07:53	1.3
+++ mi-console.c	2000/12/14 22:58:21
@@ -66,7 +66,7 @@ mi_console_file_delete (struct ui_file *
   struct mi_console_file *mi_console = ui_file_data (file);
   if (mi_console->magic != &mi_console_file_magic)
     internal_error ("mi_console_file_delete: bad magic number");
-  free (mi_console);
+  xfree (mi_console);
 }
 
 static void
Index: mi/mi-main.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-main.c,v
retrieving revision 1.8
diff -u -p -r1.8 mi-main.c
--- mi-main.c	2000/11/20 02:06:19	1.8
+++ mi-main.c	2000/12/14 22:58:21
@@ -204,10 +204,10 @@ mi_cmd_exec_interrupt (char *args, int f
   if (last_async_command)
     fputs_unfiltered (last_async_command, raw_stdout);
   fputs_unfiltered ("^done", raw_stdout);
-  free (last_async_command);
+  xfree (last_async_command);
   if (previous_async_command)
     last_async_command = xstrdup (previous_async_command);
-  free (previous_async_command);
+  xfree (previous_async_command);
   previous_async_command = NULL;
   mi_out_put (uiout, raw_stdout);
   mi_out_rewind (uiout);
@@ -697,7 +697,7 @@ mi_cmd_target_download (char *args, int 
   struct cleanup *old_cleanups = NULL;
 
   xasprintf (&run, "load %s", args);
-  old_cleanups = make_cleanup (free, run);
+  old_cleanups = make_cleanup (xfree, run);
   execute_command (run, from_tty);
 
   do_cleanups (old_cleanups);
@@ -712,7 +712,7 @@ mi_cmd_target_select (char *args, int fr
   struct cleanup *old_cleanups = NULL;
 
   xasprintf (&run, "target %s", args);
-  old_cleanups = make_cleanup (free, run);
+  old_cleanups = make_cleanup (xfree, run);
 
   /* target-select is always synchronous.  once the call has returned
      we know that we are connected. */
@@ -859,7 +859,7 @@ mi_cmd_data_read_memory (char *command, 
   /* create a buffer and read it in. */
   total_bytes = word_size * nr_rows * nr_cols;
   mbuf = calloc (total_bytes, 1);
-  make_cleanup (free, mbuf);
+  make_cleanup (xfree, mbuf);
   if (mbuf == NULL)
     {
       xasprintf (&mi_error_message,
@@ -1075,7 +1075,7 @@ captured_mi_execute_command (void *data)
 		  fputs_unfiltered (context->token, raw_stdout);
 		  fputs_unfiltered ("^error,msg=\"", raw_stdout);
 		  fputstr_unfiltered (mi_error_message, '"', raw_stdout);
-		  free (mi_error_message);
+		  xfree (mi_error_message);
 		  fputs_unfiltered ("\"\n", raw_stdout);
 		}
 	      mi_out_rewind (uiout);
@@ -1145,7 +1145,7 @@ mi_execute_command (char *cmd, int from_
       if (rc == 0)
 	{
 	  char *msg = error_last_message ();
-	  struct cleanup *cleanup = make_cleanup (free, msg);
+	  struct cleanup *cleanup = make_cleanup (xfree, msg);
 	  /* The command execution failed and error() was called
 	     somewhere */
 	  fputs_unfiltered (command->token, raw_stdout);
@@ -1248,7 +1248,7 @@ mi_execute_cli_command (const char *cli,
 	/* FIXME: gdb_???? */
 	fprintf_unfiltered (gdb_stdout, "cli=%s run=%s\n",
 			    cli, run);
-      old_cleanups = make_cleanup (free, run);
+      old_cleanups = make_cleanup (xfree, run);
       execute_command ( /*ui */ run, 0 /*from_tty */ );
       do_cleanups (old_cleanups);
       return;
@@ -1275,7 +1275,7 @@ mi_execute_async_cli_command (char *mi, 
   else
     {
       xasprintf (&run, "%s %s", mi, args);
-      old_cleanups = make_cleanup (free, run);
+      old_cleanups = make_cleanup (xfree, run);
     }
 
   if (!target_can_async_p ())
@@ -1369,7 +1369,7 @@ mi_load_progress (const char *section_na
 		 strcmp (previous_sect_name, section_name) : 1);
   if (new_section)
     {
-      free (previous_sect_name);
+      xfree (previous_sect_name);
       previous_sect_name = xstrdup (section_name);
 
       if (last_async_command)
Index: mi/mi-parse.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-parse.c,v
retrieving revision 1.4
diff -u -p -r1.4 mi-parse.c
--- mi-parse.c	2000/07/30 01:48:28	1.4
+++ mi-parse.c	2000/12/14 22:58:22
@@ -136,14 +136,14 @@ mi_parse_free (struct mi_parse *parse)
   if (parse == NULL)
     return;
   if (parse->command != NULL)
-    free (parse->command);
+    xfree (parse->command);
   if (parse->token != NULL)
-    free (parse->token);
+    xfree (parse->token);
   if (parse->args != NULL)
-    free (parse->args);
+    xfree (parse->args);
   if (parse->argv != NULL)
     freeargv (parse->argv);
-  free (parse);
+  xfree (parse);
 }
 
 
Index: tui/tui-file.c
===================================================================
RCS file: /cvs/src/src/gdb/tui/tui-file.c,v
retrieving revision 1.4
diff -u -p -r1.4 tui-file.c
--- tui-file.c	2000/07/30 01:48:28	1.4
+++ tui-file.c	2000/12/14 22:58:23
@@ -89,9 +89,9 @@ tui_file_delete (struct ui_file *file)
   if ((tmpstream->ts_streamtype == astring) &&
       (tmpstream->ts_strbuf != NULL))
     {
-      free (tmpstream->ts_strbuf);
+      xfree (tmpstream->ts_strbuf);
     }
-  free (tmpstream);
+  xfree (tmpstream);
 }
 
 struct ui_file *
Index: tui/tui.c
===================================================================
RCS file: /cvs/src/src/gdb/tui/tui.c,v
retrieving revision 1.4
diff -u -p -r1.4 tui.c
--- tui.c	2000/07/30 01:48:28	1.4
+++ tui.c	2000/12/14 22:58:23
@@ -241,7 +241,7 @@ tuiFree (ptr)
 {
   if (ptr != (char *) NULL)
     {
-      free (ptr);
+      xfree (ptr);
     }
 
   return;
@@ -626,7 +626,7 @@ strcat_to_buf_with_fmt (va_alist)
   format = va_arg (args, char *);
 #endif
   vasprintf (&linebuffer, format, args);
-  old_cleanups = make_cleanup (free, linebuffer);
+  old_cleanups = make_cleanup (xfree, linebuffer);
   strcat_to_buf (buf, bufLen, linebuffer);
   do_cleanups (old_cleanups);
   va_end (args);
Index: tui/tuiData.c
===================================================================
RCS file: /cvs/src/src/gdb/tui/tuiData.c,v
retrieving revision 1.2
diff -u -p -r1.2 tuiData.c
--- tuiData.c	2000/05/28 01:12:42	1.2
+++ tuiData.c	2000/12/14 22:58:24
@@ -1378,7 +1378,7 @@ freeWindow (winInfo)
       winInfo->generic.handle = (WINDOW *) NULL;
       freeWinContent (&winInfo->generic);
     }
-  free (winInfo);
+  xfree (winInfo);
 
   return;
 }				/* freeWindow */
Index: tui/tuiLayout.c
===================================================================
RCS file: /cvs/src/src/gdb/tui/tuiLayout.c,v
retrieving revision 1.4
diff -u -p -r1.4 tuiLayout.c
--- tuiLayout.c	2000/07/30 01:48:28	1.4
+++ tuiLayout.c	2000/12/14 22:58:25
@@ -603,7 +603,7 @@ _tuiSetLayoutTo (layoutName)
 	    newLayout = _prevLayout ();
 	  else
 	    status = TUI_FAILURE;
-	  free (bufPtr);
+	  xfree (bufPtr);
 
 	  tuiSetLayout (newLayout, dpyType);
 	}


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