Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [rfa] move make_symbol_overload_list to cp-support.c
@ 2003-06-12  0:26 David Carlton
  2003-06-12  1:30 ` Daniel Jacobowitz
  2003-06-12  2:11 ` Elena Zannoni
  0 siblings, 2 replies; 4+ messages in thread
From: David Carlton @ 2003-06-12  0:26 UTC (permalink / raw)
  To: gdb-patches; +Cc: Elena Zannoni, Daniel Jacobowitz

As previously discussed, here's a patch to move
make_symbol_overload_list and everything associated with it to
cp-support.c.  It should be pretty obvious, and Daniel and Elena have
both agreed in principle, so I'll commit this once one of them gives a
thumbs-up.  (I'm pretty sure I'm not missing anything - I just moved
code, so it's hard to imagine how anything could have gone wrong.)

David Carlton
carlton@bactrian.org

2003-06-11  David Carlton  <carlton@bactrian.org>

	* symtab.h: Delete declaration of make_symbol_overload_list.
	Add declaration of lookup_partial_symbol.
	* symtab.c (remove_params): Move to cp-support.c.
	(overload_list_add_symbol, make_symbol_overload_list)
	(sym_return_val_size, sym_return_val_index): Ditto.
	 symtab.c (lookup_partial_symbol): Make extern.
	* cp-support.h: Add declaration of make_symbol_overload_list.
	* cp-support.c: Include dictionary.h, objfiles.h, frame.h,
	symtab.h, and block.h.
	(remove_params): Move here from symtab.c.
	(overload_list_add_symbol, make_symbol_overload_list)
	(sym_return_val_size, sym_return_val_index): Ditto.
	* valops.c: Include cp-support.h.
	* Makefile.in (cp-support.o): Depend on dictionary_h, objfiles_h,
	frame_h, and block_h.
	(valops.o): Depend on cp_support_h.

Index: symtab.h
===================================================================
RCS file: /cvs/src/src/gdb/symtab.h,v
retrieving revision 1.74
diff -u -p -r1.74 symtab.h
--- symtab.h	11 Jun 2003 23:29:48 -0000	1.74
+++ symtab.h	12 Jun 2003 00:19:16 -0000
@@ -1024,6 +1024,13 @@ extern struct symbol *lookup_symbol_aux_
 					       const domain_enum domain,
 					       struct symtab **symtab);
 
+/* Lookup a partial symbol.  */
+
+extern struct partial_symbol *lookup_partial_symbol (struct partial_symtab *,
+						     const char *,
+						     const char *, int,
+						     domain_enum);
+
 /* lookup a symbol by name, within a specified block */
 
 extern struct symbol *lookup_block_symbol (const struct block *, const char *,
@@ -1285,8 +1292,6 @@ extern void select_source_symtab (struct
 extern char **make_symbol_completion_list (char *, char *);
 
 extern char **make_file_symbol_completion_list (char *, char *, char *);
-
-extern struct symbol **make_symbol_overload_list (struct symbol *);
 
 extern char **make_source_files_completion_list (char *, char *);
 
Index: symtab.c
===================================================================
RCS file: /cvs/src/src/gdb/symtab.c,v
retrieving revision 1.111
diff -u -p -r1.111 symtab.c
--- symtab.c	11 Jun 2003 23:29:48 -0000	1.111
+++ symtab.c	12 Jun 2003 00:19:30 -0000
@@ -77,11 +77,6 @@ static int find_line_common (struct line
 
 char *operator_chars (char *p, char **end);
 
-static struct partial_symbol *lookup_partial_symbol (struct partial_symtab *,
-						     const char *,
-						     const char *, int,
-						     domain_enum);
-
 static struct symbol *lookup_symbol_aux (const char *name,
 					 const char *linkage_name,
 					 const struct block *block,
@@ -136,8 +131,6 @@ static void print_msymbol_info (struct m
 
 static void symtab_symbol_info (char *, domain_enum, int);
 
-static void overload_list_add_symbol (struct symbol *sym, char *oload_name);
-
 void _initialize_symtab (void);
 
 /* */
@@ -1392,7 +1385,7 @@ lookup_symbol_global (const char *name,
    linkage name matches it.  Check the global symbols if GLOBAL, the
    static symbols if not */
 
-static struct partial_symbol *
+struct partial_symbol *
 lookup_partial_symbol (struct partial_symtab *pst, const char *name,
 		       const char *linkage_name, int global,
 		       domain_enum domain)
@@ -3922,211 +3915,6 @@ in_prologue (CORE_ADDR pc, CORE_ADDR fun
   return func_addr <= pc && pc < sal.end;
 }
 
-
-/* Begin overload resolution functions */
-
-static char *
-remove_params (const char *demangled_name)
-{
-  const char *argp;
-  char *new_name;
-  int depth;
-
-  if (demangled_name == NULL)
-    return NULL;
-
-  /* First find the end of the arg list.  */
-  argp = strrchr (demangled_name, ')');
-  if (argp == NULL)
-    return NULL;
-
-  /* Back up to the beginning.  */
-  depth = 1;
-
-  while (argp-- > demangled_name)
-    {
-      if (*argp == ')')
-	depth ++;
-      else if (*argp == '(')
-	{
-	  depth --;
-
-	  if (depth == 0)
-	    break;
-	}
-    }
-  if (depth != 0)
-    internal_error (__FILE__, __LINE__,
-		    "bad demangled name %s\n", demangled_name);
-  while (argp[-1] == ' ' && argp > demangled_name)
-    argp --;
-
-  new_name = xmalloc (argp - demangled_name + 1);
-  memcpy (new_name, demangled_name, argp - demangled_name);
-  new_name[argp - demangled_name] = '\0';
-  return new_name;
-}
-
-/* Helper routine for make_symbol_completion_list.  */
-
-static int sym_return_val_size;
-static int sym_return_val_index;
-static struct symbol **sym_return_val;
-
-/*  Test to see if the symbol specified by SYMNAME (which is already
-   demangled for C++ symbols) matches SYM_TEXT in the first SYM_TEXT_LEN
-   characters.  If so, add it to the current completion list. */
-
-static void
-overload_list_add_symbol (struct symbol *sym, char *oload_name)
-{
-  int newsize;
-  int i;
-  char *sym_name;
-
-  /* If there is no type information, we can't do anything, so skip */
-  if (SYMBOL_TYPE (sym) == NULL)
-    return;
-
-  /* skip any symbols that we've already considered. */
-  for (i = 0; i < sym_return_val_index; ++i)
-    if (!strcmp (DEPRECATED_SYMBOL_NAME (sym), DEPRECATED_SYMBOL_NAME (sym_return_val[i])))
-      return;
-
-  /* Get the demangled name without parameters */
-  sym_name = remove_params (SYMBOL_DEMANGLED_NAME (sym));
-  if (!sym_name)
-    return;
-
-  /* skip symbols that cannot match */
-  if (strcmp (sym_name, oload_name) != 0)
-    {
-      xfree (sym_name);
-      return;
-    }
-
-  xfree (sym_name);
-
-  /* We have a match for an overload instance, so add SYM to the current list
-   * of overload instances */
-  if (sym_return_val_index + 3 > sym_return_val_size)
-    {
-      newsize = (sym_return_val_size *= 2) * sizeof (struct symbol *);
-      sym_return_val = (struct symbol **) xrealloc ((char *) sym_return_val, newsize);
-    }
-  sym_return_val[sym_return_val_index++] = sym;
-  sym_return_val[sym_return_val_index] = NULL;
-}
-
-/* Return a null-terminated list of pointers to function symbols that
- * match name of the supplied symbol FSYM.
- * This is used in finding all overloaded instances of a function name.
- * This has been modified from make_symbol_completion_list.  */
-
-
-struct symbol **
-make_symbol_overload_list (struct symbol *fsym)
-{
-  register struct symbol *sym;
-  register struct symtab *s;
-  register struct partial_symtab *ps;
-  register struct objfile *objfile;
-  register struct block *b, *surrounding_static_block = 0;
-  struct dict_iterator iter;
-  /* The name we are completing on. */
-  char *oload_name = NULL;
-  /* Length of name.  */
-  int oload_name_len = 0;
-
-  /* Look for the symbol we are supposed to complete on.  */
-
-  oload_name = remove_params (SYMBOL_DEMANGLED_NAME (fsym));
-  if (!oload_name)
-    {
-      sym_return_val_size = 1;
-      sym_return_val = (struct symbol **) xmalloc (2 * sizeof (struct symbol *));
-      sym_return_val[0] = fsym;
-      sym_return_val[1] = NULL;
-
-      return sym_return_val;
-    }
-  oload_name_len = strlen (oload_name);
-
-  sym_return_val_size = 100;
-  sym_return_val_index = 0;
-  sym_return_val = (struct symbol **) xmalloc ((sym_return_val_size + 1) * sizeof (struct symbol *));
-  sym_return_val[0] = NULL;
-
-  /* Read in all partial symtabs containing a partial symbol named
-     OLOAD_NAME.  */
-
-  ALL_PSYMTABS (objfile, ps)
-  {
-    struct partial_symbol **psym;
-
-    /* If the psymtab's been read in we'll get it when we search
-       through the blockvector.  */
-    if (ps->readin)
-      continue;
-
-    if ((lookup_partial_symbol (ps, oload_name, NULL, 1, VAR_DOMAIN)
-	 != NULL)
-	|| (lookup_partial_symbol (ps, oload_name, NULL, 0, VAR_DOMAIN)
-	    != NULL))
-      PSYMTAB_TO_SYMTAB (ps);
-  }
-
-  /* Search upwards from currently selected frame (so that we can
-     complete on local vars.  */
-
-  for (b = get_selected_block (0); b != NULL; b = BLOCK_SUPERBLOCK (b))
-    {
-      if (!BLOCK_SUPERBLOCK (b))
-	{
-	  surrounding_static_block = b;		/* For elimination of dups */
-	}
-
-      /* Also catch fields of types defined in this places which match our
-         text string.  Only complete on types visible from current context. */
-
-      ALL_BLOCK_SYMBOLS (b, iter, sym)
-	{
-	  overload_list_add_symbol (sym, oload_name);
-	}
-    }
-
-  /* Go through the symtabs and check the externs and statics for
-     symbols which match.  */
-
-  ALL_SYMTABS (objfile, s)
-  {
-    QUIT;
-    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
-    ALL_BLOCK_SYMBOLS (b, iter, sym)
-      {
-	overload_list_add_symbol (sym, oload_name);
-      }
-  }
-
-  ALL_SYMTABS (objfile, s)
-  {
-    QUIT;
-    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
-    /* Don't do this block twice.  */
-    if (b == surrounding_static_block)
-      continue;
-    ALL_BLOCK_SYMBOLS (b, iter, sym)
-      {
-	overload_list_add_symbol (sym, oload_name);
-      }
-  }
-
-  xfree (oload_name);
-
-  return (sym_return_val);
-}
-
-/* End of overload resolution functions */
 \f
 struct symtabs_and_lines
 decode_line_spec (char *string, int funfirstline)
Index: cp-support.h
===================================================================
RCS file: /cvs/src/src/gdb/cp-support.h,v
retrieving revision 1.5
diff -u -p -r1.5 cp-support.h
--- cp-support.h	8 Jun 2003 18:27:13 -0000	1.5
+++ cp-support.h	12 Jun 2003 00:19:39 -0000
@@ -58,6 +58,7 @@ extern unsigned int cp_find_first_compon
 
 extern unsigned int cp_entire_prefix_len (const char *name);
 
+extern struct symbol **make_symbol_overload_list (struct symbol *);
 
 /* Functions/variables from cp-namespace.c.  */
 
Index: cp-support.c
===================================================================
RCS file: /cvs/src/src/gdb/cp-support.c,v
retrieving revision 1.4
diff -u -p -r1.4 cp-support.c
--- cp-support.c	8 Jun 2003 18:27:13 -0000	1.4
+++ cp-support.c	12 Jun 2003 00:19:35 -0000
@@ -27,6 +27,21 @@
 #include "demangle.h"
 #include "gdb_assert.h"
 #include "gdbcmd.h"
+#include "dictionary.h"
+#include "objfiles.h"
+#include "frame.h"
+#include "symtab.h"
+#include "block.h"
+
+/* Functions/variables related to overload resolution.  */
+
+static int sym_return_val_size;
+static int sym_return_val_index;
+static struct symbol **sym_return_val;
+
+static char *remove_params (const char *demangled_name);
+
+static void overload_list_add_symbol (struct symbol *sym, char *oload_name);
 
 /* The list of "maint cplus" commands.  */
 
@@ -323,6 +338,204 @@ cp_entire_prefix_len (const char *name)
 
   return previous_len;
 }
+
+/* Overload resolution functions.  */
+
+static char *
+remove_params (const char *demangled_name)
+{
+  const char *argp;
+  char *new_name;
+  int depth;
+
+  if (demangled_name == NULL)
+    return NULL;
+
+  /* First find the end of the arg list.  */
+  argp = strrchr (demangled_name, ')');
+  if (argp == NULL)
+    return NULL;
+
+  /* Back up to the beginning.  */
+  depth = 1;
+
+  while (argp-- > demangled_name)
+    {
+      if (*argp == ')')
+	depth ++;
+      else if (*argp == '(')
+	{
+	  depth --;
+
+	  if (depth == 0)
+	    break;
+	}
+    }
+  if (depth != 0)
+    internal_error (__FILE__, __LINE__,
+		    "bad demangled name %s\n", demangled_name);
+  while (argp[-1] == ' ' && argp > demangled_name)
+    argp --;
+
+  new_name = xmalloc (argp - demangled_name + 1);
+  memcpy (new_name, demangled_name, argp - demangled_name);
+  new_name[argp - demangled_name] = '\0';
+  return new_name;
+}
+
+/*  Test to see if the symbol specified by SYMNAME (which is already
+   demangled for C++ symbols) matches SYM_TEXT in the first SYM_TEXT_LEN
+   characters.  If so, add it to the current completion list. */
+
+static void
+overload_list_add_symbol (struct symbol *sym, char *oload_name)
+{
+  int newsize;
+  int i;
+  char *sym_name;
+
+  /* If there is no type information, we can't do anything, so skip */
+  if (SYMBOL_TYPE (sym) == NULL)
+    return;
+
+  /* skip any symbols that we've already considered. */
+  for (i = 0; i < sym_return_val_index; ++i)
+    if (!strcmp (DEPRECATED_SYMBOL_NAME (sym), DEPRECATED_SYMBOL_NAME (sym_return_val[i])))
+      return;
+
+  /* Get the demangled name without parameters */
+  sym_name = remove_params (SYMBOL_DEMANGLED_NAME (sym));
+  if (!sym_name)
+    return;
+
+  /* skip symbols that cannot match */
+  if (strcmp (sym_name, oload_name) != 0)
+    {
+      xfree (sym_name);
+      return;
+    }
+
+  xfree (sym_name);
+
+  /* We have a match for an overload instance, so add SYM to the current list
+   * of overload instances */
+  if (sym_return_val_index + 3 > sym_return_val_size)
+    {
+      newsize = (sym_return_val_size *= 2) * sizeof (struct symbol *);
+      sym_return_val = (struct symbol **) xrealloc ((char *) sym_return_val, newsize);
+    }
+  sym_return_val[sym_return_val_index++] = sym;
+  sym_return_val[sym_return_val_index] = NULL;
+}
+
+/* Return a null-terminated list of pointers to function symbols that
+ * match name of the supplied symbol FSYM.
+ * This is used in finding all overloaded instances of a function name.
+ * This has been modified from make_symbol_completion_list.  */
+
+
+struct symbol **
+make_symbol_overload_list (struct symbol *fsym)
+{
+  register struct symbol *sym;
+  register struct symtab *s;
+  register struct partial_symtab *ps;
+  register struct objfile *objfile;
+  register struct block *b, *surrounding_static_block = 0;
+  struct dict_iterator iter;
+  /* The name we are completing on. */
+  char *oload_name = NULL;
+  /* Length of name.  */
+  int oload_name_len = 0;
+
+  /* Look for the symbol we are supposed to complete on.  */
+
+  oload_name = remove_params (SYMBOL_DEMANGLED_NAME (fsym));
+  if (!oload_name)
+    {
+      sym_return_val_size = 1;
+      sym_return_val = (struct symbol **) xmalloc (2 * sizeof (struct symbol *));
+      sym_return_val[0] = fsym;
+      sym_return_val[1] = NULL;
+
+      return sym_return_val;
+    }
+  oload_name_len = strlen (oload_name);
+
+  sym_return_val_size = 100;
+  sym_return_val_index = 0;
+  sym_return_val = (struct symbol **) xmalloc ((sym_return_val_size + 1) * sizeof (struct symbol *));
+  sym_return_val[0] = NULL;
+
+  /* Read in all partial symtabs containing a partial symbol named
+     OLOAD_NAME.  */
+
+  ALL_PSYMTABS (objfile, ps)
+  {
+    struct partial_symbol **psym;
+
+    /* If the psymtab's been read in we'll get it when we search
+       through the blockvector.  */
+    if (ps->readin)
+      continue;
+
+    if ((lookup_partial_symbol (ps, oload_name, NULL, 1, VAR_DOMAIN)
+	 != NULL)
+	|| (lookup_partial_symbol (ps, oload_name, NULL, 0, VAR_DOMAIN)
+	    != NULL))
+      PSYMTAB_TO_SYMTAB (ps);
+  }
+
+  /* Search upwards from currently selected frame (so that we can
+     complete on local vars.  */
+
+  for (b = get_selected_block (0); b != NULL; b = BLOCK_SUPERBLOCK (b))
+    {
+      if (!BLOCK_SUPERBLOCK (b))
+	{
+	  surrounding_static_block = b;		/* For elimination of dups */
+	}
+
+      /* Also catch fields of types defined in this places which match our
+         text string.  Only complete on types visible from current context. */
+
+      ALL_BLOCK_SYMBOLS (b, iter, sym)
+	{
+	  overload_list_add_symbol (sym, oload_name);
+	}
+    }
+
+  /* Go through the symtabs and check the externs and statics for
+     symbols which match.  */
+
+  ALL_SYMTABS (objfile, s)
+  {
+    QUIT;
+    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
+    ALL_BLOCK_SYMBOLS (b, iter, sym)
+      {
+	overload_list_add_symbol (sym, oload_name);
+      }
+  }
+
+  ALL_SYMTABS (objfile, s)
+  {
+    QUIT;
+    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
+    /* Don't do this block twice.  */
+    if (b == surrounding_static_block)
+      continue;
+    ALL_BLOCK_SYMBOLS (b, iter, sym)
+      {
+	overload_list_add_symbol (sym, oload_name);
+      }
+  }
+
+  xfree (oload_name);
+
+  return (sym_return_val);
+}
+
 
 /* Don't allow just "maintenance cplus".  */
 
Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.111
diff -u -p -r1.111 valops.c
--- valops.c	11 Jun 2003 23:29:48 -0000	1.111
+++ valops.c	12 Jun 2003 00:19:47 -0000
@@ -36,6 +36,7 @@
 #include "block.h"
 #include "infcall.h"
 #include "dictionary.h"
+#include "cp-support.h"
 
 #include <errno.h>
 #include "gdb_string.h"
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.399
diff -u -p -r1.399 Makefile.in
--- Makefile.in	11 Jun 2003 23:29:45 -0000	1.399
+++ Makefile.in	12 Jun 2003 00:20:01 -0000
@@ -1637,7 +1637,8 @@ cp-abi.o: cp-abi.c $(defs_h) $(value_h) 
 cp-namespace.o: cp-namespace.c $(defs_h) $(cp_support_h) $(gdb_obstack_h) \
 	$(symtab_h) $(symfile_h) $(gdb_assert_h) $(block_h)
 cp-support.o: cp-support.c $(defs_h) $(cp_support_h) $(gdb_string_h) \
-	$(demangle_h) $(gdb_assert_h) $(gdbcmd_h)
+	$(demangle_h) $(gdb_assert_h) $(gdbcmd_h) $(dictionary_h) \
+	$(objfiles_h) $(frame_h) $(block_h)
 cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
 	$(gdbtypes_h) $(expression_h) $(value_h) $(command_h) $(gdbcmd_h) \
 	$(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
@@ -2349,7 +2350,7 @@ valarith.o: valarith.c $(defs_h) $(value
 valops.o: valops.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(value_h) $(frame_h) \
 	$(inferior_h) $(gdbcore_h) $(target_h) $(demangle_h) $(language_h) \
 	$(gdbcmd_h) $(regcache_h) $(cp_abi_h) $(gdb_string_h) \
-	$(gdb_assert_h) $(block_h) $(dictionary_h)
+	$(gdb_assert_h) $(block_h) $(dictionary_h) $(cp_support_h)
 valprint.o: valprint.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
 	$(value_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) $(language_h) \
 	$(annotate_h) $(valprint_h) $(floatformat_h) $(doublest_h)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [rfa] move make_symbol_overload_list to cp-support.c
  2003-06-12  0:26 [rfa] move make_symbol_overload_list to cp-support.c David Carlton
@ 2003-06-12  1:30 ` Daniel Jacobowitz
  2003-06-12 15:36   ` David Carlton
  2003-06-12  2:11 ` Elena Zannoni
  1 sibling, 1 reply; 4+ messages in thread
From: Daniel Jacobowitz @ 2003-06-12  1:30 UTC (permalink / raw)
  To: gdb-patches

On Wed, Jun 11, 2003 at 05:24:42PM -0700, David Carlton wrote:
> As previously discussed, here's a patch to move
> make_symbol_overload_list and everything associated with it to
> cp-support.c.  It should be pretty obvious, and Daniel and Elena have
> both agreed in principle, so I'll commit this once one of them gives a
> thumbs-up.  (I'm pretty sure I'm not missing anything - I just moved
> code, so it's hard to imagine how anything could have gone wrong.)

Looks good.  I'm not thrilled with externing lookup_partial_symbol but
it'll do for a while.

> David Carlton
> carlton@bactrian.org
> 
> 2003-06-11  David Carlton  <carlton@bactrian.org>
> 
> 	* symtab.h: Delete declaration of make_symbol_overload_list.
> 	Add declaration of lookup_partial_symbol.
> 	* symtab.c (remove_params): Move to cp-support.c.
> 	(overload_list_add_symbol, make_symbol_overload_list)
> 	(sym_return_val_size, sym_return_val_index): Ditto.
> 	 symtab.c (lookup_partial_symbol): Make extern.
> 	* cp-support.h: Add declaration of make_symbol_overload_list.
> 	* cp-support.c: Include dictionary.h, objfiles.h, frame.h,
> 	symtab.h, and block.h.
> 	(remove_params): Move here from symtab.c.
> 	(overload_list_add_symbol, make_symbol_overload_list)
> 	(sym_return_val_size, sym_return_val_index): Ditto.
> 	* valops.c: Include cp-support.h.
> 	* Makefile.in (cp-support.o): Depend on dictionary_h, objfiles_h,
> 	frame_h, and block_h.
> 	(valops.o): Depend on cp_support_h.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [rfa] move make_symbol_overload_list to cp-support.c
  2003-06-12  0:26 [rfa] move make_symbol_overload_list to cp-support.c David Carlton
  2003-06-12  1:30 ` Daniel Jacobowitz
@ 2003-06-12  2:11 ` Elena Zannoni
  1 sibling, 0 replies; 4+ messages in thread
From: Elena Zannoni @ 2003-06-12  2:11 UTC (permalink / raw)
  To: David Carlton; +Cc: gdb-patches, Elena Zannoni, Daniel Jacobowitz

David Carlton writes:
 > As previously discussed, here's a patch to move
 > make_symbol_overload_list and everything associated with it to
 > cp-support.c.  It should be pretty obvious, and Daniel and Elena have
 > both agreed in principle, so I'll commit this once one of them gives a
 > thumbs-up.  (I'm pretty sure I'm not missing anything - I just moved
 > code, so it's hard to imagine how anything could have gone wrong.)

My thumbs are up.

elena


 > 
 > David Carlton
 > carlton@bactrian.org
 > 
 > 2003-06-11  David Carlton  <carlton@bactrian.org>
 > 
 > 	* symtab.h: Delete declaration of make_symbol_overload_list.
 > 	Add declaration of lookup_partial_symbol.
 > 	* symtab.c (remove_params): Move to cp-support.c.
 > 	(overload_list_add_symbol, make_symbol_overload_list)
 > 	(sym_return_val_size, sym_return_val_index): Ditto.
 > 	 symtab.c (lookup_partial_symbol): Make extern.
 > 	* cp-support.h: Add declaration of make_symbol_overload_list.
 > 	* cp-support.c: Include dictionary.h, objfiles.h, frame.h,
 > 	symtab.h, and block.h.
 > 	(remove_params): Move here from symtab.c.
 > 	(overload_list_add_symbol, make_symbol_overload_list)
 > 	(sym_return_val_size, sym_return_val_index): Ditto.
 > 	* valops.c: Include cp-support.h.
 > 	* Makefile.in (cp-support.o): Depend on dictionary_h, objfiles_h,
 > 	frame_h, and block_h.
 > 	(valops.o): Depend on cp_support_h.
 > 
 > Index: symtab.h
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symtab.h,v
 > retrieving revision 1.74
 > diff -u -p -r1.74 symtab.h
 > --- symtab.h	11 Jun 2003 23:29:48 -0000	1.74
 > +++ symtab.h	12 Jun 2003 00:19:16 -0000
 > @@ -1024,6 +1024,13 @@ extern struct symbol *lookup_symbol_aux_
 >  					       const domain_enum domain,
 >  					       struct symtab **symtab);
 >  
 > +/* Lookup a partial symbol.  */
 > +
 > +extern struct partial_symbol *lookup_partial_symbol (struct partial_symtab *,
 > +						     const char *,
 > +						     const char *, int,
 > +						     domain_enum);
 > +
 >  /* lookup a symbol by name, within a specified block */
 >  
 >  extern struct symbol *lookup_block_symbol (const struct block *, const char *,
 > @@ -1285,8 +1292,6 @@ extern void select_source_symtab (struct
 >  extern char **make_symbol_completion_list (char *, char *);
 >  
 >  extern char **make_file_symbol_completion_list (char *, char *, char *);
 > -
 > -extern struct symbol **make_symbol_overload_list (struct symbol *);
 >  
 >  extern char **make_source_files_completion_list (char *, char *);
 >  
 > Index: symtab.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/symtab.c,v
 > retrieving revision 1.111
 > diff -u -p -r1.111 symtab.c
 > --- symtab.c	11 Jun 2003 23:29:48 -0000	1.111
 > +++ symtab.c	12 Jun 2003 00:19:30 -0000
 > @@ -77,11 +77,6 @@ static int find_line_common (struct line
 >  
 >  char *operator_chars (char *p, char **end);
 >  
 > -static struct partial_symbol *lookup_partial_symbol (struct partial_symtab *,
 > -						     const char *,
 > -						     const char *, int,
 > -						     domain_enum);
 > -
 >  static struct symbol *lookup_symbol_aux (const char *name,
 >  					 const char *linkage_name,
 >  					 const struct block *block,
 > @@ -136,8 +131,6 @@ static void print_msymbol_info (struct m
 >  
 >  static void symtab_symbol_info (char *, domain_enum, int);
 >  
 > -static void overload_list_add_symbol (struct symbol *sym, char *oload_name);
 > -
 >  void _initialize_symtab (void);
 >  
 >  /* */
 > @@ -1392,7 +1385,7 @@ lookup_symbol_global (const char *name,
 >     linkage name matches it.  Check the global symbols if GLOBAL, the
 >     static symbols if not */
 >  
 > -static struct partial_symbol *
 > +struct partial_symbol *
 >  lookup_partial_symbol (struct partial_symtab *pst, const char *name,
 >  		       const char *linkage_name, int global,
 >  		       domain_enum domain)
 > @@ -3922,211 +3915,6 @@ in_prologue (CORE_ADDR pc, CORE_ADDR fun
 >    return func_addr <= pc && pc < sal.end;
 >  }
 >  
 > -
 > -/* Begin overload resolution functions */
 > -
 > -static char *
 > -remove_params (const char *demangled_name)
 > -{
 > -  const char *argp;
 > -  char *new_name;
 > -  int depth;
 > -
 > -  if (demangled_name == NULL)
 > -    return NULL;
 > -
 > -  /* First find the end of the arg list.  */
 > -  argp = strrchr (demangled_name, ')');
 > -  if (argp == NULL)
 > -    return NULL;
 > -
 > -  /* Back up to the beginning.  */
 > -  depth = 1;
 > -
 > -  while (argp-- > demangled_name)
 > -    {
 > -      if (*argp == ')')
 > -	depth ++;
 > -      else if (*argp == '(')
 > -	{
 > -	  depth --;
 > -
 > -	  if (depth == 0)
 > -	    break;
 > -	}
 > -    }
 > -  if (depth != 0)
 > -    internal_error (__FILE__, __LINE__,
 > -		    "bad demangled name %s\n", demangled_name);
 > -  while (argp[-1] == ' ' && argp > demangled_name)
 > -    argp --;
 > -
 > -  new_name = xmalloc (argp - demangled_name + 1);
 > -  memcpy (new_name, demangled_name, argp - demangled_name);
 > -  new_name[argp - demangled_name] = '\0';
 > -  return new_name;
 > -}
 > -
 > -/* Helper routine for make_symbol_completion_list.  */
 > -
 > -static int sym_return_val_size;
 > -static int sym_return_val_index;
 > -static struct symbol **sym_return_val;
 > -
 > -/*  Test to see if the symbol specified by SYMNAME (which is already
 > -   demangled for C++ symbols) matches SYM_TEXT in the first SYM_TEXT_LEN
 > -   characters.  If so, add it to the current completion list. */
 > -
 > -static void
 > -overload_list_add_symbol (struct symbol *sym, char *oload_name)
 > -{
 > -  int newsize;
 > -  int i;
 > -  char *sym_name;
 > -
 > -  /* If there is no type information, we can't do anything, so skip */
 > -  if (SYMBOL_TYPE (sym) == NULL)
 > -    return;
 > -
 > -  /* skip any symbols that we've already considered. */
 > -  for (i = 0; i < sym_return_val_index; ++i)
 > -    if (!strcmp (DEPRECATED_SYMBOL_NAME (sym), DEPRECATED_SYMBOL_NAME (sym_return_val[i])))
 > -      return;
 > -
 > -  /* Get the demangled name without parameters */
 > -  sym_name = remove_params (SYMBOL_DEMANGLED_NAME (sym));
 > -  if (!sym_name)
 > -    return;
 > -
 > -  /* skip symbols that cannot match */
 > -  if (strcmp (sym_name, oload_name) != 0)
 > -    {
 > -      xfree (sym_name);
 > -      return;
 > -    }
 > -
 > -  xfree (sym_name);
 > -
 > -  /* We have a match for an overload instance, so add SYM to the current list
 > -   * of overload instances */
 > -  if (sym_return_val_index + 3 > sym_return_val_size)
 > -    {
 > -      newsize = (sym_return_val_size *= 2) * sizeof (struct symbol *);
 > -      sym_return_val = (struct symbol **) xrealloc ((char *) sym_return_val, newsize);
 > -    }
 > -  sym_return_val[sym_return_val_index++] = sym;
 > -  sym_return_val[sym_return_val_index] = NULL;
 > -}
 > -
 > -/* Return a null-terminated list of pointers to function symbols that
 > - * match name of the supplied symbol FSYM.
 > - * This is used in finding all overloaded instances of a function name.
 > - * This has been modified from make_symbol_completion_list.  */
 > -
 > -
 > -struct symbol **
 > -make_symbol_overload_list (struct symbol *fsym)
 > -{
 > -  register struct symbol *sym;
 > -  register struct symtab *s;
 > -  register struct partial_symtab *ps;
 > -  register struct objfile *objfile;
 > -  register struct block *b, *surrounding_static_block = 0;
 > -  struct dict_iterator iter;
 > -  /* The name we are completing on. */
 > -  char *oload_name = NULL;
 > -  /* Length of name.  */
 > -  int oload_name_len = 0;
 > -
 > -  /* Look for the symbol we are supposed to complete on.  */
 > -
 > -  oload_name = remove_params (SYMBOL_DEMANGLED_NAME (fsym));
 > -  if (!oload_name)
 > -    {
 > -      sym_return_val_size = 1;
 > -      sym_return_val = (struct symbol **) xmalloc (2 * sizeof (struct symbol *));
 > -      sym_return_val[0] = fsym;
 > -      sym_return_val[1] = NULL;
 > -
 > -      return sym_return_val;
 > -    }
 > -  oload_name_len = strlen (oload_name);
 > -
 > -  sym_return_val_size = 100;
 > -  sym_return_val_index = 0;
 > -  sym_return_val = (struct symbol **) xmalloc ((sym_return_val_size + 1) * sizeof (struct symbol *));
 > -  sym_return_val[0] = NULL;
 > -
 > -  /* Read in all partial symtabs containing a partial symbol named
 > -     OLOAD_NAME.  */
 > -
 > -  ALL_PSYMTABS (objfile, ps)
 > -  {
 > -    struct partial_symbol **psym;
 > -
 > -    /* If the psymtab's been read in we'll get it when we search
 > -       through the blockvector.  */
 > -    if (ps->readin)
 > -      continue;
 > -
 > -    if ((lookup_partial_symbol (ps, oload_name, NULL, 1, VAR_DOMAIN)
 > -	 != NULL)
 > -	|| (lookup_partial_symbol (ps, oload_name, NULL, 0, VAR_DOMAIN)
 > -	    != NULL))
 > -      PSYMTAB_TO_SYMTAB (ps);
 > -  }
 > -
 > -  /* Search upwards from currently selected frame (so that we can
 > -     complete on local vars.  */
 > -
 > -  for (b = get_selected_block (0); b != NULL; b = BLOCK_SUPERBLOCK (b))
 > -    {
 > -      if (!BLOCK_SUPERBLOCK (b))
 > -	{
 > -	  surrounding_static_block = b;		/* For elimination of dups */
 > -	}
 > -
 > -      /* Also catch fields of types defined in this places which match our
 > -         text string.  Only complete on types visible from current context. */
 > -
 > -      ALL_BLOCK_SYMBOLS (b, iter, sym)
 > -	{
 > -	  overload_list_add_symbol (sym, oload_name);
 > -	}
 > -    }
 > -
 > -  /* Go through the symtabs and check the externs and statics for
 > -     symbols which match.  */
 > -
 > -  ALL_SYMTABS (objfile, s)
 > -  {
 > -    QUIT;
 > -    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
 > -    ALL_BLOCK_SYMBOLS (b, iter, sym)
 > -      {
 > -	overload_list_add_symbol (sym, oload_name);
 > -      }
 > -  }
 > -
 > -  ALL_SYMTABS (objfile, s)
 > -  {
 > -    QUIT;
 > -    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
 > -    /* Don't do this block twice.  */
 > -    if (b == surrounding_static_block)
 > -      continue;
 > -    ALL_BLOCK_SYMBOLS (b, iter, sym)
 > -      {
 > -	overload_list_add_symbol (sym, oload_name);
 > -      }
 > -  }
 > -
 > -  xfree (oload_name);
 > -
 > -  return (sym_return_val);
 > -}
 > -
 > -/* End of overload resolution functions */
 >  \f
 >  struct symtabs_and_lines
 >  decode_line_spec (char *string, int funfirstline)
 > Index: cp-support.h
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/cp-support.h,v
 > retrieving revision 1.5
 > diff -u -p -r1.5 cp-support.h
 > --- cp-support.h	8 Jun 2003 18:27:13 -0000	1.5
 > +++ cp-support.h	12 Jun 2003 00:19:39 -0000
 > @@ -58,6 +58,7 @@ extern unsigned int cp_find_first_compon
 >  
 >  extern unsigned int cp_entire_prefix_len (const char *name);
 >  
 > +extern struct symbol **make_symbol_overload_list (struct symbol *);
 >  
 >  /* Functions/variables from cp-namespace.c.  */
 >  
 > Index: cp-support.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/cp-support.c,v
 > retrieving revision 1.4
 > diff -u -p -r1.4 cp-support.c
 > --- cp-support.c	8 Jun 2003 18:27:13 -0000	1.4
 > +++ cp-support.c	12 Jun 2003 00:19:35 -0000
 > @@ -27,6 +27,21 @@
 >  #include "demangle.h"
 >  #include "gdb_assert.h"
 >  #include "gdbcmd.h"
 > +#include "dictionary.h"
 > +#include "objfiles.h"
 > +#include "frame.h"
 > +#include "symtab.h"
 > +#include "block.h"
 > +
 > +/* Functions/variables related to overload resolution.  */
 > +
 > +static int sym_return_val_size;
 > +static int sym_return_val_index;
 > +static struct symbol **sym_return_val;
 > +
 > +static char *remove_params (const char *demangled_name);
 > +
 > +static void overload_list_add_symbol (struct symbol *sym, char *oload_name);
 >  
 >  /* The list of "maint cplus" commands.  */
 >  
 > @@ -323,6 +338,204 @@ cp_entire_prefix_len (const char *name)
 >  
 >    return previous_len;
 >  }
 > +
 > +/* Overload resolution functions.  */
 > +
 > +static char *
 > +remove_params (const char *demangled_name)
 > +{
 > +  const char *argp;
 > +  char *new_name;
 > +  int depth;
 > +
 > +  if (demangled_name == NULL)
 > +    return NULL;
 > +
 > +  /* First find the end of the arg list.  */
 > +  argp = strrchr (demangled_name, ')');
 > +  if (argp == NULL)
 > +    return NULL;
 > +
 > +  /* Back up to the beginning.  */
 > +  depth = 1;
 > +
 > +  while (argp-- > demangled_name)
 > +    {
 > +      if (*argp == ')')
 > +	depth ++;
 > +      else if (*argp == '(')
 > +	{
 > +	  depth --;
 > +
 > +	  if (depth == 0)
 > +	    break;
 > +	}
 > +    }
 > +  if (depth != 0)
 > +    internal_error (__FILE__, __LINE__,
 > +		    "bad demangled name %s\n", demangled_name);
 > +  while (argp[-1] == ' ' && argp > demangled_name)
 > +    argp --;
 > +
 > +  new_name = xmalloc (argp - demangled_name + 1);
 > +  memcpy (new_name, demangled_name, argp - demangled_name);
 > +  new_name[argp - demangled_name] = '\0';
 > +  return new_name;
 > +}
 > +
 > +/*  Test to see if the symbol specified by SYMNAME (which is already
 > +   demangled for C++ symbols) matches SYM_TEXT in the first SYM_TEXT_LEN
 > +   characters.  If so, add it to the current completion list. */
 > +
 > +static void
 > +overload_list_add_symbol (struct symbol *sym, char *oload_name)
 > +{
 > +  int newsize;
 > +  int i;
 > +  char *sym_name;
 > +
 > +  /* If there is no type information, we can't do anything, so skip */
 > +  if (SYMBOL_TYPE (sym) == NULL)
 > +    return;
 > +
 > +  /* skip any symbols that we've already considered. */
 > +  for (i = 0; i < sym_return_val_index; ++i)
 > +    if (!strcmp (DEPRECATED_SYMBOL_NAME (sym), DEPRECATED_SYMBOL_NAME (sym_return_val[i])))
 > +      return;
 > +
 > +  /* Get the demangled name without parameters */
 > +  sym_name = remove_params (SYMBOL_DEMANGLED_NAME (sym));
 > +  if (!sym_name)
 > +    return;
 > +
 > +  /* skip symbols that cannot match */
 > +  if (strcmp (sym_name, oload_name) != 0)
 > +    {
 > +      xfree (sym_name);
 > +      return;
 > +    }
 > +
 > +  xfree (sym_name);
 > +
 > +  /* We have a match for an overload instance, so add SYM to the current list
 > +   * of overload instances */
 > +  if (sym_return_val_index + 3 > sym_return_val_size)
 > +    {
 > +      newsize = (sym_return_val_size *= 2) * sizeof (struct symbol *);
 > +      sym_return_val = (struct symbol **) xrealloc ((char *) sym_return_val, newsize);
 > +    }
 > +  sym_return_val[sym_return_val_index++] = sym;
 > +  sym_return_val[sym_return_val_index] = NULL;
 > +}
 > +
 > +/* Return a null-terminated list of pointers to function symbols that
 > + * match name of the supplied symbol FSYM.
 > + * This is used in finding all overloaded instances of a function name.
 > + * This has been modified from make_symbol_completion_list.  */
 > +
 > +
 > +struct symbol **
 > +make_symbol_overload_list (struct symbol *fsym)
 > +{
 > +  register struct symbol *sym;
 > +  register struct symtab *s;
 > +  register struct partial_symtab *ps;
 > +  register struct objfile *objfile;
 > +  register struct block *b, *surrounding_static_block = 0;
 > +  struct dict_iterator iter;
 > +  /* The name we are completing on. */
 > +  char *oload_name = NULL;
 > +  /* Length of name.  */
 > +  int oload_name_len = 0;
 > +
 > +  /* Look for the symbol we are supposed to complete on.  */
 > +
 > +  oload_name = remove_params (SYMBOL_DEMANGLED_NAME (fsym));
 > +  if (!oload_name)
 > +    {
 > +      sym_return_val_size = 1;
 > +      sym_return_val = (struct symbol **) xmalloc (2 * sizeof (struct symbol *));
 > +      sym_return_val[0] = fsym;
 > +      sym_return_val[1] = NULL;
 > +
 > +      return sym_return_val;
 > +    }
 > +  oload_name_len = strlen (oload_name);
 > +
 > +  sym_return_val_size = 100;
 > +  sym_return_val_index = 0;
 > +  sym_return_val = (struct symbol **) xmalloc ((sym_return_val_size + 1) * sizeof (struct symbol *));
 > +  sym_return_val[0] = NULL;
 > +
 > +  /* Read in all partial symtabs containing a partial symbol named
 > +     OLOAD_NAME.  */
 > +
 > +  ALL_PSYMTABS (objfile, ps)
 > +  {
 > +    struct partial_symbol **psym;
 > +
 > +    /* If the psymtab's been read in we'll get it when we search
 > +       through the blockvector.  */
 > +    if (ps->readin)
 > +      continue;
 > +
 > +    if ((lookup_partial_symbol (ps, oload_name, NULL, 1, VAR_DOMAIN)
 > +	 != NULL)
 > +	|| (lookup_partial_symbol (ps, oload_name, NULL, 0, VAR_DOMAIN)
 > +	    != NULL))
 > +      PSYMTAB_TO_SYMTAB (ps);
 > +  }
 > +
 > +  /* Search upwards from currently selected frame (so that we can
 > +     complete on local vars.  */
 > +
 > +  for (b = get_selected_block (0); b != NULL; b = BLOCK_SUPERBLOCK (b))
 > +    {
 > +      if (!BLOCK_SUPERBLOCK (b))
 > +	{
 > +	  surrounding_static_block = b;		/* For elimination of dups */
 > +	}
 > +
 > +      /* Also catch fields of types defined in this places which match our
 > +         text string.  Only complete on types visible from current context. */
 > +
 > +      ALL_BLOCK_SYMBOLS (b, iter, sym)
 > +	{
 > +	  overload_list_add_symbol (sym, oload_name);
 > +	}
 > +    }
 > +
 > +  /* Go through the symtabs and check the externs and statics for
 > +     symbols which match.  */
 > +
 > +  ALL_SYMTABS (objfile, s)
 > +  {
 > +    QUIT;
 > +    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
 > +    ALL_BLOCK_SYMBOLS (b, iter, sym)
 > +      {
 > +	overload_list_add_symbol (sym, oload_name);
 > +      }
 > +  }
 > +
 > +  ALL_SYMTABS (objfile, s)
 > +  {
 > +    QUIT;
 > +    b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
 > +    /* Don't do this block twice.  */
 > +    if (b == surrounding_static_block)
 > +      continue;
 > +    ALL_BLOCK_SYMBOLS (b, iter, sym)
 > +      {
 > +	overload_list_add_symbol (sym, oload_name);
 > +      }
 > +  }
 > +
 > +  xfree (oload_name);
 > +
 > +  return (sym_return_val);
 > +}
 > +
 >  
 >  /* Don't allow just "maintenance cplus".  */
 >  
 > Index: valops.c
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/valops.c,v
 > retrieving revision 1.111
 > diff -u -p -r1.111 valops.c
 > --- valops.c	11 Jun 2003 23:29:48 -0000	1.111
 > +++ valops.c	12 Jun 2003 00:19:47 -0000
 > @@ -36,6 +36,7 @@
 >  #include "block.h"
 >  #include "infcall.h"
 >  #include "dictionary.h"
 > +#include "cp-support.h"
 >  
 >  #include <errno.h>
 >  #include "gdb_string.h"
 > Index: Makefile.in
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/Makefile.in,v
 > retrieving revision 1.399
 > diff -u -p -r1.399 Makefile.in
 > --- Makefile.in	11 Jun 2003 23:29:45 -0000	1.399
 > +++ Makefile.in	12 Jun 2003 00:20:01 -0000
 > @@ -1637,7 +1637,8 @@ cp-abi.o: cp-abi.c $(defs_h) $(value_h) 
 >  cp-namespace.o: cp-namespace.c $(defs_h) $(cp_support_h) $(gdb_obstack_h) \
 >  	$(symtab_h) $(symfile_h) $(gdb_assert_h) $(block_h)
 >  cp-support.o: cp-support.c $(defs_h) $(cp_support_h) $(gdb_string_h) \
 > -	$(demangle_h) $(gdb_assert_h) $(gdbcmd_h)
 > +	$(demangle_h) $(gdb_assert_h) $(gdbcmd_h) $(dictionary_h) \
 > +	$(objfiles_h) $(frame_h) $(block_h)
 >  cp-valprint.o: cp-valprint.c $(defs_h) $(gdb_obstack_h) $(symtab_h) \
 >  	$(gdbtypes_h) $(expression_h) $(value_h) $(command_h) $(gdbcmd_h) \
 >  	$(demangle_h) $(annotate_h) $(gdb_string_h) $(c_lang_h) $(target_h) \
 > @@ -2349,7 +2350,7 @@ valarith.o: valarith.c $(defs_h) $(value
 >  valops.o: valops.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(value_h) $(frame_h) \
 >  	$(inferior_h) $(gdbcore_h) $(target_h) $(demangle_h) $(language_h) \
 >  	$(gdbcmd_h) $(regcache_h) $(cp_abi_h) $(gdb_string_h) \
 > -	$(gdb_assert_h) $(block_h) $(dictionary_h)
 > +	$(gdb_assert_h) $(block_h) $(dictionary_h) $(cp_support_h)
 >  valprint.o: valprint.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
 >  	$(value_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) $(language_h) \
 >  	$(annotate_h) $(valprint_h) $(floatformat_h) $(doublest_h)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [rfa] move make_symbol_overload_list to cp-support.c
  2003-06-12  1:30 ` Daniel Jacobowitz
@ 2003-06-12 15:36   ` David Carlton
  0 siblings, 0 replies; 4+ messages in thread
From: David Carlton @ 2003-06-12 15:36 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches

On Wed, 11 Jun 2003 21:29:58 -0400, Daniel Jacobowitz <drow@mvista.com> said:
> On Wed, Jun 11, 2003 at 05:24:42PM -0700, David Carlton wrote:

>> As previously discussed, here's a patch to move
>> make_symbol_overload_list and everything associated with it to
>> cp-support.c.

> Looks good.  I'm not thrilled with externing lookup_partial_symbol
> but it'll do for a while.

Yeah, that surprised me a bit, too.  But I think it will have to do
until we have a better handle on a clean interface to symtab stuff
that hides the existence of partial symtabs.

Anyways, I've committed it.

David Carlton
carlton@math.stanford.edu


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-06-12 15:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-12  0:26 [rfa] move make_symbol_overload_list to cp-support.c David Carlton
2003-06-12  1:30 ` Daniel Jacobowitz
2003-06-12 15:36   ` David Carlton
2003-06-12  2:11 ` Elena Zannoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox