]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-03-07 David Carlton <carlton@math.stanford.edu>
authorDavid Carlton <carlton@bactrian.org>
Fri, 7 Mar 2003 22:52:55 +0000 (22:52 +0000)
committerDavid Carlton <carlton@bactrian.org>
Fri, 7 Mar 2003 22:52:55 +0000 (22:52 +0000)
* symtab.c (lookup_partial_symbol): Replace uses of
SYMBOL_MATCHES_NATURAL_NAME by equivalent uses of
SYMBOL_NATURAL_NAME, strcmp_iw.
* symtab.h (SYMBOL_MATCHES_NATURAL_NAME): Delete.
* minsyms.c (lookup_minimal_symbol_linkage): Make static.
(lookup_minimal_symbol_natural): Ditto.
(lookup_minimal_symbol): Only search on linkage names; rename
first argument to 'linkage_name'.
(lookup_minimal_symbol_linkage): Delete.
(lookup_minimal_symbol_natural): Delete.
(add_minsym_to_demangled_hash_table): Go back to using
SYMBOL_DEMANGLED_NAME instead of SYMBOL_NATURAL_NAME.
(lookup_minimal_symbol_aux): Don't use
SYMBOL_MATCHES_NATURAL_NAME: do a strcmp_iw on
SYMBOL_DEMANGLED_NAME instead.  Add comment.
(build_minimal_symbol_hash_tables): Go back to only adding to
demangled has table if SYMBOL_DEMANGLED_NAME is non-NULL.
* symtab.h: Delete declarations for lookup_minimal_symbol_linkage
and lookup_minimal_symbol_natural.
* valops.c (find_function_in_inferior): Use lookup_symbol_linkage
instead of lookup_symbol.  Change comment.
* remote.c (remote_check_symbols): Use
lookup_minimal_symbol_linkage_or_natural instead of
lookup_minimal_symbol, but add FIXME comment as well.
* objc-lang.c: Ditto.
* c-exp.y: Use lookup_minimal_symbol_linkage_or_natural instead of
lookup_minimal_symbol.
* p-exp.y: Ditto.
* objc-exp.y: Ditto.
* m2-exp.y: Ditto.
* jv-exp.y (push_expression_name): Ditto.
* f-exp.y: Ditto.
* printcmd.c (address_info): Ditto.
* symtab.h: Declare lookup_minimal_symbol_linkage_or_natural.
* minsyms.c (lookup_minimal_symbol_linkage_or_natural): New.
* ax-gdb.c (gen_var_ref): Use SYMBOL_LINKAGE_NAME instead of
DEPRECATED_SYMBOL_NAME.
* tracepoint.c (scope_info): Ditto.
* symtab.c (find_pc_sect_line): Ditto.
* stabsread.c (define_symbol): Ditto.
* sol-thread.c (info_cb): Ditto.
* printcmd.c (address_info): Ditto.
* hppa-tdep.c (hppa_fix_call_dummy): Ditto.
(hppa_in_solib_call_trampoline): Ditto.
* findvar.c (read_var_value): Ditto.

20 files changed:
gdb/ChangeLog
gdb/ax-gdb.c
gdb/c-exp.y
gdb/f-exp.y
gdb/findvar.c
gdb/hppa-tdep.c
gdb/jv-exp.y
gdb/m2-exp.y
gdb/minsyms.c
gdb/objc-exp.y
gdb/objc-lang.c
gdb/p-exp.y
gdb/printcmd.c
gdb/remote.c
gdb/sol-thread.c
gdb/stabsread.c
gdb/symtab.c
gdb/symtab.h
gdb/tracepoint.c
gdb/valops.c

index 2d29a275e305f8aff1b7e807e70714cfd9174648..86bd57cb8dffa242ddafc975095c69716668ff27 100644 (file)
@@ -1,3 +1,51 @@
+2003-03-07  David Carlton  <carlton@math.stanford.edu>
+
+       * symtab.c (lookup_partial_symbol): Replace uses of
+       SYMBOL_MATCHES_NATURAL_NAME by equivalent uses of
+       SYMBOL_NATURAL_NAME, strcmp_iw.
+       * symtab.h (SYMBOL_MATCHES_NATURAL_NAME): Delete.
+       * minsyms.c (lookup_minimal_symbol_linkage): Make static.
+       (lookup_minimal_symbol_natural): Ditto.
+       (lookup_minimal_symbol): Only search on linkage names; rename
+       first argument to 'linkage_name'.
+       (lookup_minimal_symbol_linkage): Delete.
+       (lookup_minimal_symbol_natural): Delete.
+       (add_minsym_to_demangled_hash_table): Go back to using
+       SYMBOL_DEMANGLED_NAME instead of SYMBOL_NATURAL_NAME.
+       (lookup_minimal_symbol_aux): Don't use
+       SYMBOL_MATCHES_NATURAL_NAME: do a strcmp_iw on
+       SYMBOL_DEMANGLED_NAME instead.  Add comment.
+       (build_minimal_symbol_hash_tables): Go back to only adding to
+       demangled has table if SYMBOL_DEMANGLED_NAME is non-NULL.
+       * symtab.h: Delete declarations for lookup_minimal_symbol_linkage
+       and lookup_minimal_symbol_natural.
+       * valops.c (find_function_in_inferior): Use lookup_symbol_linkage
+       instead of lookup_symbol.  Change comment.
+       * remote.c (remote_check_symbols): Use
+       lookup_minimal_symbol_linkage_or_natural instead of
+       lookup_minimal_symbol, but add FIXME comment as well.
+       * objc-lang.c: Ditto.
+       * c-exp.y: Use lookup_minimal_symbol_linkage_or_natural instead of
+       lookup_minimal_symbol.
+       * p-exp.y: Ditto.
+       * objc-exp.y: Ditto.
+       * m2-exp.y: Ditto.
+       * jv-exp.y (push_expression_name): Ditto.
+       * f-exp.y: Ditto.
+       * printcmd.c (address_info): Ditto.
+       * symtab.h: Declare lookup_minimal_symbol_linkage_or_natural.
+       * minsyms.c (lookup_minimal_symbol_linkage_or_natural): New.
+       * ax-gdb.c (gen_var_ref): Use SYMBOL_LINKAGE_NAME instead of
+       DEPRECATED_SYMBOL_NAME.
+       * tracepoint.c (scope_info): Ditto.
+       * symtab.c (find_pc_sect_line): Ditto.
+       * stabsread.c (define_symbol): Ditto.
+       * sol-thread.c (info_cb): Ditto.
+       * printcmd.c (address_info): Ditto.
+       * hppa-tdep.c (hppa_fix_call_dummy): Ditto.
+       (hppa_in_solib_call_trampoline): Ditto.
+       * findvar.c (read_var_value): Ditto.
+
 2003-03-06  David Carlton  <carlton@math.stanford.edu>
 
        * minsyms.c (add_minsym_to_hash_table): Use SYMBOL_LINKAGE_NAME.
index 5692c35f99015cbd012fffab490048b34e10858a..cb8ff2c4210ef83bcffdfb72ec63d16933af59c2 100644 (file)
@@ -609,7 +609,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
     case LOC_UNRESOLVED:
       {
        struct minimal_symbol *msym
-       = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (var), NULL, NULL);
+       = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (var), NULL, NULL);
        if (!msym)
          error ("Couldn't resolve symbol `%s'.", SYMBOL_PRINT_NAME (var));
 
index 1eb82396994721c1e2f7c6d562ce6410c61e3389..dae4aca80755e5d84e63a28acb1b70b7a349d8f8 100644 (file)
@@ -655,7 +655,8 @@ variable:   qualified_name
                              break;
                            }
 
-                         msymbol = lookup_minimal_symbol (name, NULL, NULL);
+                         msymbol
+                           = lookup_minimal_symbol_linkage_or_natural (name);
                          if (msymbol != NULL)
                            {
                              write_exp_msymbol (msymbol,
@@ -711,7 +712,7 @@ variable:   name_not_typename
                              register char *arg = copy_name ($1.stoken);
 
                              msymbol =
-                               lookup_minimal_symbol (arg, NULL, NULL);
+                               lookup_minimal_symbol_linkage_or_natural (arg);
                              if (msymbol != NULL)
                                {
                                  write_exp_msymbol (msymbol,
index a9504c18418a799244408421e5bec8a3c9ab3cdb..e25a5d2ed688ac6975d8aa593fbf817fd70c2db3 100644 (file)
@@ -479,7 +479,7 @@ variable:   name_not_typename
                              register char *arg = copy_name ($1.stoken);
 
                              msymbol =
-                               lookup_minimal_symbol (arg, NULL, NULL);
+                               lookup_minimal_symbol_linkage_or_natural (arg);
                              if (msymbol != NULL)
                                {
                                  write_exp_msymbol (msymbol,
index 56f5b82f7d4ef3d6257d352a01997c850b151a97..2283d4daa9ad237b079766098dd691f3888ff115 100644 (file)
@@ -629,7 +629,7 @@ addresses have not been bound by the dynamic loader. Try again when executable i
       {
        struct minimal_symbol *msym;
 
-       msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (var), NULL, NULL);
+       msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (var), NULL, NULL);
        if (msym == NULL)
          return 0;
        if (overlay_debugging)
index 99ef1450fa9334be6b536a7cec232f7b14b0e6ce..a03f8506223695b453b9d08cd892ff39cb4aa52c 100644 (file)
@@ -2234,10 +2234,10 @@ hppa_fix_call_dummy (char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs,
          {
            stub_symbol
              = lookup_minimal_symbol_solib_trampoline
-             (DEPRECATED_SYMBOL_NAME (funsymbol), NULL, objfile);
+             (SYMBOL_LINKAGE_NAME (funsymbol), NULL, objfile);
 
            if (!stub_symbol)
-             stub_symbol = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (funsymbol),
+             stub_symbol = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (funsymbol),
                                                   NULL, objfile);
 
            /* Found a symbol with the right name.  */
@@ -3014,7 +3014,7 @@ hppa_in_solib_call_trampoline (CORE_ADDR pc, char *name)
     return 1;
 
   minsym = lookup_minimal_symbol_by_pc (pc);
-  if (minsym && strcmp (DEPRECATED_SYMBOL_NAME (minsym), ".stub") == 0)
+  if (minsym && strcmp (SYMBOL_LINKAGE_NAME (minsym), ".stub") == 0)
     return 1;
 
   /* Get the unwind descriptor corresponding to PC, return zero
@@ -3352,7 +3352,7 @@ hppa_skip_trampoline_code (CORE_ADDR pc)
              return orig_pc == pc ? 0 : pc & ~0x3;
            }
 
-         libsym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (stubsym), NULL, NULL);
+         libsym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (stubsym), NULL, NULL);
          if (libsym == NULL)
            {
              warning ("Unable to find library symbol for %s\n",
index 7780c37b2d1a6b234c031a9e028bd9e478371a2e..ff64e7d539d821e6892439e3e6492a9fa0ac55ff 100644 (file)
@@ -1405,7 +1405,7 @@ push_expression_name (name)
     {
       struct minimal_symbol *msymbol;
 
-      msymbol = lookup_minimal_symbol (tmp, NULL, NULL);
+      msymbol = lookup_minimal_symbol_linkage_or_natural (tmp);
       if (msymbol != NULL)
        {
          write_exp_msymbol (msymbol,
index ef0197aaebfcd5a17977bd6623c218b1ee8f03b2..4ad3304e0157abd1331e9274f59b1a4361cd0e93 100644 (file)
@@ -621,7 +621,7 @@ variable:   NAME
                              register char *arg = copy_name ($1);
 
                              msymbol =
-                               lookup_minimal_symbol (arg, NULL, NULL);
+                               lookup_minimal_symbol_linkage_or_natural (arg);
                              if (msymbol != NULL)
                                {
                                  write_exp_msymbol
index cf35c0e21339a6636224bb33faa10bdbdc9241fa..6f6deeb258a8cea86972fdceb95d2f3da63b3184 100644 (file)
@@ -76,6 +76,16 @@ static int msym_bunch_index;
 
 static int msym_count;
 
+static struct minimal_symbol *lookup_minimal_symbol_linkage (const char *name,
+                                                            const char *sfile,
+                                                            struct objfile
+                                                            *objf);
+
+static struct minimal_symbol *lookup_minimal_symbol_natural (const char *name,
+                                                            const char *sfile,
+                                                            struct objfile
+                                                            *objf);
+
 static struct minimal_symbol *lookup_minimal_symbol_aux (const char *name,
                                                         int linkage,
                                                         const char *sfile,
@@ -134,7 +144,7 @@ add_minsym_to_demangled_hash_table (struct minimal_symbol *sym,
   if (sym->demangled_hash_next == NULL)
     {
       unsigned int hash
-       = (msymbol_hash_iw (SYMBOL_NATURAL_NAME (sym))
+       = (msymbol_hash_iw (SYMBOL_DEMANGLED_NAME (sym))
           % MINIMAL_SYMBOL_HASH_SIZE);
       sym->demangled_hash_next = table[hash];
       table[hash] = sym;
@@ -143,58 +153,66 @@ add_minsym_to_demangled_hash_table (struct minimal_symbol *sym,
 
 
 /* Look through all the current minimal symbol tables and find the
-   first minimal symbol that matches NAME.  If OBJF is non-NULL, limit
-   the search to that objfile.  If SFILE is non-NULL, the only file-scope
-   symbols considered will be from that source file (global symbols are
-   still preferred).  Returns a pointer to the minimal symbol that
-   matches, or NULL if no match is found.
+   first minimal symbol whose linkage name is LINKAGE_NAME.  If OBJF
+   is non-NULL, limit the search to that objfile.  If SFILE is
+   non-NULL, the only file-scope symbols considered will be from that
+   source file (global symbols are still preferred).  Returns a
+   pointer to the minimal symbol that matches, or NULL if no match is
+   found.
 
    Note:  One instance where there may be duplicate minimal symbols with
    the same name is when the symbol tables for a shared library and the
    symbol tables for an executable contain global symbols with the same
-   names (the dynamic linker deals with the duplication).
+   names (the dynamic linker deals with the duplication).  */
 
-   This function first searches for matches via linkage names; if it
-   doesn't find a match there, it then searches via natural names.  */
+/* NOTE: carlton/2003-03-07: This function used to match on natural
+   names as well; if you want that behavior, call
+   lookup_minimal_symbol_linkage_or_natural.  */
 
 struct minimal_symbol *
-lookup_minimal_symbol (register const char *name, const char *sfile,
+lookup_minimal_symbol (register const char *linkage_name, const char *sfile,
                       struct objfile *objf)
 {
-  struct minimal_symbol *msymbol;
+  return lookup_minimal_symbol_aux (linkage_name, 1, sfile, objf);
+}
 
-  msymbol = lookup_minimal_symbol_linkage (name, sfile, objf);
+/* Search for a minimal symbol named NAME.  Search for that name as
+   either a linkage name or a natural name.  */
 
-  if (msymbol != NULL)
-    return msymbol;
-  else
-    return lookup_minimal_symbol_natural (name, sfile, objf);
-}
+/* NOTE: carlton/2003-03-07: I normally strongly dislike functions
+   that accept either linkage names or natural names, but I'm making
+   an exception here: callers of this function derive NAME from user
+   input, and do so in situations where using a linkage name might be
+   necessary as a workaround for some of GDB's C++ bugs.  */
 
-/* Search for a minimal symbol via linkage names; args are as in
-   lookup_minimal_symbol.  */
+/* NOTE: carlton/2003-03-07: This never searches on all natural names
+   at once: it searches on linkage names via strcmp, and on demangled
+   names via strcmp_iw.  However, for natural names that turn out to
+   be linkage names of minimal symbols, using strcmp in place of
+   strcmp_iw is safe.  (You have to be more careful if the name isn't
+   associated to a minimal symbol: see PR gdb/33.)  */
 
 struct minimal_symbol *
-lookup_minimal_symbol_linkage (const char *name, const char *sfile,
-                              struct objfile *objf)
+lookup_minimal_symbol_linkage_or_natural (const char *name)
 {
-  return lookup_minimal_symbol_aux (name, 1, sfile, objf);
-}
+  struct minimal_symbol *msymbol;
 
-/* Search for a minimal symbol via natural names; args are as in
-   lookup_minimal_symbol.  */
+  msymbol = lookup_minimal_symbol_aux (name, 1, NULL, NULL);
 
-struct minimal_symbol *
-lookup_minimal_symbol_natural (const char *name, const char *sfile,
-                              struct objfile *objf)
-{
-  return lookup_minimal_symbol_aux (name, 0, sfile, objf);
+  if (msymbol != NULL)
+    return msymbol;
+  else
+    return lookup_minimal_symbol_aux (name, 0, NULL, NULL);
 }
 
 /* Helper function for lookup_minimal_symbol and friends, which only
    searches for matches via linkage names or natural names but not
    both.  Args are in lookup_minimal_symbol; if LINKAGE is non-zero,
-   search in linkage names, if zero, search in natural names.  */
+   search in linkage names via strcmp, and if zero, search in
+   demangled names via strcmp_iw.  */
+
+/* NOTE: carlton/2003-03-07: If non-zero, it really only searches in
+   demangled names, not in all natural names.  Be careful.  */
 
 static struct minimal_symbol *
 lookup_minimal_symbol_aux (const char *name, int linkage,
@@ -237,7 +255,7 @@ lookup_minimal_symbol_aux (const char *name, int linkage,
            {
              if (linkage
                  ? strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0
-                 : SYMBOL_MATCHES_NATURAL_NAME (msymbol, name))
+                 : strcmp_iw (SYMBOL_DEMANGLED_NAME (msymbol), name) == 0)
                {
                  switch (MSYMBOL_TYPE (msymbol))
                    {
@@ -845,8 +863,9 @@ build_minimal_symbol_hash_tables (struct objfile *objfile)
       add_minsym_to_hash_table (msym, objfile->msymbol_hash);
 
       msym->demangled_hash_next = 0;
-      add_minsym_to_demangled_hash_table (msym,
-                                         objfile->msymbol_demangled_hash);
+      if (SYMBOL_DEMANGLED_NAME (msym) != NULL)
+       add_minsym_to_demangled_hash_table (msym,
+                                           objfile->msymbol_demangled_hash);
     }
 }
 
index dc8866cd26ef703b9c95f9b70fa755c85b1b6576..e6155bac8297c8189ffdea5fd4609edacc9ff9cc 100644 (file)
@@ -716,7 +716,8 @@ variable:   qualified_name
                              break;
                            }
 
-                         msymbol = lookup_minimal_symbol (name, NULL, NULL);
+                         msymbol
+                           = lookup_minimal_symbol_linkage_or_natural (name);
                          if (msymbol != NULL)
                            {
                              write_exp_msymbol (msymbol,
@@ -772,7 +773,7 @@ variable:   name_not_typename
                              register char *arg = copy_name ($1.stoken);
 
                              msymbol =
-                               lookup_minimal_symbol (arg, NULL, NULL);
+                               lookup_minimal_symbol_linkage_or_natural (arg);
                              if (msymbol != NULL)
                                {
                                  write_exp_msymbol (msymbol,
index cee41eb72fc47a9e75c6796c9712b95d65e9f167..22926853db2923ef8f70cb3859fcdc0f5f76c2cf 100644 (file)
@@ -1446,7 +1446,11 @@ char *find_imps (struct symtab *symtab, struct block *block,
       }
 
     if (sym == NULL)
-      msym = lookup_minimal_symbol (selector, 0, 0);
+      {
+       /* FIXME: carlton/2003-03-07: I don't know what SELECTOR looks
+          like: is it a linkage name or a natural name?  I'll accept
+          natural names for now, to be on the safe side.  */
+      msym = lookup_minimal_symbol_linkage_or_natural (selector);
 
     if (msym != NULL) 
       {
index bdfcf05ff2fd35c0594def2a38851fc007f66758..4863947bcafde74ecc01f84d5a8030908bc3fb2b 100644 (file)
@@ -620,7 +620,8 @@ variable:   qualified_name
                              break;
                            }
 
-                         msymbol = lookup_minimal_symbol (name, NULL, NULL);
+                         msymbol
+                           = lookup_minimal_symbol_linkage_or_natural (name);
                          if (msymbol != NULL)
                            {
                              write_exp_msymbol (msymbol,
@@ -690,7 +691,7 @@ variable:   name_not_typename
                              register char *arg = copy_name ($1.stoken);
 
                              msymbol =
-                               lookup_minimal_symbol (arg, NULL, NULL);
+                               lookup_minimal_symbol_linkage_or_natural (arg);
                              if (msymbol != NULL)
                                {
                                  write_exp_msymbol (msymbol,
index 96736f74f6fca96e5050bef9728330278afe8b3e..167abba5d4f4cfc2ca02566895376eb8842ff5cc 100644 (file)
@@ -1096,7 +1096,7 @@ address_info (char *exp, int from_tty)
          return;
        }
 
-      msymbol = lookup_minimal_symbol (exp, NULL, NULL);
+      msymbol = lookup_minimal_symbol_linkage_or_natural (exp);
 
       if (msymbol != NULL)
        {
@@ -1242,7 +1242,7 @@ address_info (char *exp, int from_tty)
       {
        struct minimal_symbol *msym;
 
-       msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, NULL);
+       msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (sym), NULL, NULL);
        if (msym == NULL)
          printf_filtered ("unresolved");
        else
index 5edea0102753eee58761fbc90382e809c023b4dc..45f1aff8991ed2b0d353d26e3b3c421e2d6974fd 100644 (file)
@@ -2227,7 +2227,10 @@ remote_check_symbols (struct objfile *objfile)
       tmp = &reply[8];
       end = hex2bin (tmp, msg, strlen (tmp) / 2);
       msg[end] = '\0';
-      sym = lookup_minimal_symbol (msg, NULL, NULL);
+      /* FIXME: carlton/2003-03-07: I have no idea if natural names
+        are allowed here; allowing them is safest.  Somebody else
+        should look at this.  */
+      sym = lookup_minimal_symbol_linkage_or_natural (msg);
       if (sym == NULL)
        sprintf (msg, "qSymbol::%s", &reply[8]);
       else
index 1d379e9ec19020f7cb1c79683b3fab34bf0d2245..e1157aec203f3f95baa817a840379da682f131e9 100644 (file)
@@ -1476,7 +1476,7 @@ info_cb (const td_thrhandle_t *th, void *s)
          struct minimal_symbol *msym;
          msym = lookup_minimal_symbol_by_pc (ti.ti_startfunc);
          if (msym)
-           printf_filtered ("   startfunc: %s\n", DEPRECATED_SYMBOL_NAME (msym));
+           printf_filtered ("   startfunc: %s\n", SYMBOL_LINKAGE_NAME (msym));
          else
            printf_filtered ("   startfunc: 0x%s\n", paddr (ti.ti_startfunc));
        }
index 88ab300754f9ce634e2645b5624c247b694db24f..dffd593e1a8f040cc8464fe76a811a2ee1fab113 100644 (file)
@@ -1801,13 +1801,13 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       SYMBOL_CLASS (sym) = LOC_STATIC;
       SYMBOL_VALUE_ADDRESS (sym) = valu;
 #ifdef STATIC_TRANSFORM_NAME
-      if (IS_STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym)))
+      if (IS_STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym)))
        {
          struct minimal_symbol *msym;
-         msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, objfile);
+         msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (sym), NULL, objfile);
          if (msym != NULL)
            {
-             DEPRECATED_SYMBOL_NAME (sym) = STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym));
+             SYMBOL_LINKAGE_NAME (sym) = STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym));
              SYMBOL_VALUE_ADDRESS (sym) = SYMBOL_VALUE_ADDRESS (msym);
            }
        }
@@ -1959,10 +1959,10 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       if (IS_STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym)))
        {
          struct minimal_symbol *msym;
-         msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, objfile);
+         msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (sym), NULL, objfile);
          if (msym != NULL)
            {
-             DEPRECATED_SYMBOL_NAME (sym) = STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym));
+             SYMBOL_LINKAGE_NAME (sym) = STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym));
              SYMBOL_VALUE_ADDRESS (sym) = SYMBOL_VALUE_ADDRESS (msym);
            }
        }
index c71c6eea8baf6b32a4f35fea522b051497280405..b134f02a19ba53cd6f9fca107492911fd058bbf6 100644 (file)
@@ -1538,7 +1538,7 @@ lookup_partial_symbol (struct partial_symtab *pst, const char *name,
       while (top <= real_top
             && (linkage_name != NULL
                 ? strcmp (SYMBOL_LINKAGE_NAME (*top), linkage_name) == 0
-                : SYMBOL_MATCHES_NATURAL_NAME (*top,name)))
+                : strcmp_iw (SYMBOL_NATURAL_NAME (*top), name) == 0))
        {
          if (SYMBOL_NAMESPACE (*top) == namespace)
            {
@@ -1559,7 +1559,7 @@ lookup_partial_symbol (struct partial_symtab *pst, const char *name,
            {
              if (linkage_name != NULL
                  ? strcmp (SYMBOL_LINKAGE_NAME (*psym), linkage_name) == 0
-                 : SYMBOL_MATCHES_NATURAL_NAME (*psym, name))
+                 : strcmp_iw (SYMBOL_NATURAL_NAME (*psym), name) == 0)
                {
                  return (*psym);
                }
@@ -2065,7 +2065,7 @@ find_pc_sect_line (CORE_ADDR pc, struct sec *section, int notcurrent)
   if (msymbol != NULL)
     if (MSYMBOL_TYPE (msymbol) == mst_solib_trampoline)
       {
-       mfunsym = lookup_minimal_symbol_text (DEPRECATED_SYMBOL_NAME (msymbol), NULL, NULL);
+       mfunsym = lookup_minimal_symbol_text (SYMBOL_LINKAGE_NAME (msymbol), NULL, NULL);
        if (mfunsym == NULL)
          /* I eliminated this warning since it is coming out
           * in the following situation:
index 9c784a7eefd22a4ccd6f3fa0d343ffb8ec54d8db..e0ce92f16262b4a43dda5dc4b892297b07dbdd65 100644 (file)
@@ -211,14 +211,6 @@ extern const char *symbol_demangled_name (const struct general_symbol_info
 #define SYMBOL_PRINT_NAME(symbol)                                      \
   (demangle ? SYMBOL_NATURAL_NAME (symbol) : SYMBOL_LINKAGE_NAME (symbol))
 
-/* Macro that tests a symbol for a match against a specified name
-   string.  It tests against SYMBOL_NATURAL_NAME, and it ignores
-   whitespace and trailing parentheses.  (See strcmp_iw for details
-   about its behavior.)  */
-
-#define SYMBOL_MATCHES_NATURAL_NAME(symbol, name)                      \
-  (strcmp_iw (SYMBOL_NATURAL_NAME (symbol), (name)) == 0)
-
 /* Define a simple structure used to hold some very basic information about
    all defined global symbols (text, data, bss, abs, etc).  The only required
    information is the general_symbol_info.
@@ -1124,13 +1116,8 @@ extern struct minimal_symbol *lookup_minimal_symbol (const char *,
                                                     const char *,
                                                     struct objfile *);
 
-extern struct minimal_symbol *lookup_minimal_symbol_linkage (const char *,
-                                                            const char *,
-                                                            struct objfile *);
-
-extern struct minimal_symbol *lookup_minimal_symbol_natural (const char *,
-                                                            const char *,
-                                                            struct objfile *);
+extern struct
+minimal_symbol *lookup_minimal_symbol_linkage_or_natural (const char *);
 
 extern struct minimal_symbol *lookup_minimal_symbol_text (const char *,
                                                          const char *,
index 70c1b8bb73438eede0bac5f1d0374e9d939795f6..20472c0fc67617c33309f068b8261a848f0d183d 100644 (file)
@@ -2435,7 +2435,7 @@ scope_info (char *args, int from_tty)
                               REGISTER_NAME (SYMBOL_BASEREG (sym)));
              break;
            case LOC_UNRESOLVED:
-             msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, NULL);
+             msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (sym), NULL, NULL);
              if (msym == NULL)
                printf_filtered ("Unresolved Static");
              else
index 36408ef53be68719765f315d102fdcf4ea57eeed..647a7fcb18934ea7775c9807d244a498aa86942e 100644 (file)
@@ -161,13 +161,14 @@ int unwind_on_signal_p = 0;
 static int coerce_float_to_double;
 \f
 
-/* Find the address of function name NAME in the inferior.  */
+/* Find the address of function whose linkage name is NAME in the
+   inferior.  */
 
 struct value *
 find_function_in_inferior (const char *name)
 {
   register struct symbol *sym;
-  sym = lookup_symbol (name, 0, VAR_NAMESPACE, 0, NULL);
+  sym = lookup_symbol_linkage (name);
   if (sym != NULL)
     {
       if (SYMBOL_CLASS (sym) != LOC_BLOCK)