From: David Carlton <carlton@math.stanford.edu>
To: Michael Elizabeth Chastain <mec@shout.net>
Cc: gdb-patches@sources.redhat.com
Subject: stab at a fix for PR java/1039
Date: Fri, 28 Feb 2003 23:00:00 -0000 [thread overview]
Message-ID: <ro1el5sj9jn.fsf@jackfruit.Stanford.EDU> (raw)
Michael, could you give this patch a try on gdb.java/jmisc2.exp in a
situation where that test used to pass before this month? I don't
have the right version of gcj to test it, but it's vaguely possible
that this patch might do the trick. There's certainly a bug in GDB in
this code, which this patch hopefully fixes; I could imagine how that
test might tickle the code in question.
David Carlton
carlton@math.stanford.edu
2003-02-28 David Carlton <carlton@math.stanford.edu>
* symtab.c (lookup_partial_symbol): Add linkage_name argument.
(lookup_symbol_aux_psymtabs): Update call to
lookup_partial_symbol.
(lookup_transparent_type, find_main_psymtab)
(make_symbol_overload_list): Ditto.
Index: symtab.c
===================================================================
RCS file: /cvs/src/src/gdb/symtab.c,v
retrieving revision 1.96
diff -u -p -r1.96 symtab.c
--- symtab.c 27 Feb 2003 20:48:03 -0000 1.96
+++ symtab.c 28 Feb 2003 22:58:15 -0000
@@ -76,6 +76,7 @@ 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,
namespace_enum);
@@ -1201,7 +1202,8 @@ lookup_symbol_aux_psymtabs (int block_in
ALL_PSYMTABS (objfile, ps)
{
if (!ps->readin
- && lookup_partial_symbol (ps, name, psymtab_index, namespace))
+ && lookup_partial_symbol (ps, name, mangled_name,
+ psymtab_index, namespace))
{
s = PSYMTAB_TO_SYMTAB (ps);
bv = BLOCKVECTOR (s);
@@ -1371,7 +1373,8 @@ lookup_symbol_aux_minsyms (const char *n
symbols if GLOBAL, the static symbols if not */
static struct partial_symbol *
-lookup_partial_symbol (struct partial_symtab *pst, const char *name, int global,
+lookup_partial_symbol (struct partial_symtab *pst, const char *name,
+ const char *linkage_name, int global,
namespace_enum namespace)
{
struct partial_symbol *temp;
@@ -1426,7 +1429,10 @@ lookup_partial_symbol (struct partial_sy
/* djb - 2000-06-03 - Use SYMBOL_MATCHES_NAME, not a strcmp, so
we don't have to force a linear search on C++. Probably holds true
for JAVA as well, no way to check.*/
- while (top <= real_top && SYMBOL_MATCHES_NAME (*top,name))
+ while (top <= real_top
+ && (linkage_name
+ ? (strcmp (SYMBOL_LINKAGE_NAME (*top), linkage_name) == 0)
+ : SYMBOL_MATCHES_NAME (*top,name)))
{
if (SYMBOL_NAMESPACE (*top) == namespace)
{
@@ -1445,7 +1451,9 @@ lookup_partial_symbol (struct partial_sy
{
if (namespace == SYMBOL_NAMESPACE (*psym))
{
- if (SYMBOL_MATCHES_NAME (*psym, name))
+ if (linkage_name
+ ? (strcmp (SYMBOL_LINKAGE_NAME (*psym), linkage_name) == 0)
+ : SYMBOL_MATCHES_NAME (*psym, name))
{
return (*psym);
}
@@ -1492,7 +1500,8 @@ lookup_transparent_type (const char *nam
ALL_PSYMTABS (objfile, ps)
{
- if (!ps->readin && lookup_partial_symbol (ps, name, 1, STRUCT_NAMESPACE))
+ if (!ps->readin
+ && lookup_partial_symbol (ps, name, NULL, 1, STRUCT_NAMESPACE))
{
s = PSYMTAB_TO_SYMTAB (ps);
bv = BLOCKVECTOR (s);
@@ -1539,7 +1548,8 @@ lookup_transparent_type (const char *nam
ALL_PSYMTABS (objfile, ps)
{
- if (!ps->readin && lookup_partial_symbol (ps, name, 0, STRUCT_NAMESPACE))
+ if (!ps->readin
+ && lookup_partial_symbol (ps, name, NULL, 0, STRUCT_NAMESPACE))
{
s = PSYMTAB_TO_SYMTAB (ps);
bv = BLOCKVECTOR (s);
@@ -1580,7 +1590,7 @@ find_main_psymtab (void)
ALL_PSYMTABS (objfile, pst)
{
- if (lookup_partial_symbol (pst, main_name (), 1, VAR_NAMESPACE))
+ if (lookup_partial_symbol (pst, main_name (), NULL, 1, VAR_NAMESPACE))
{
return (pst);
}
@@ -4026,8 +4036,10 @@ make_symbol_overload_list (struct symbol
if (ps->readin)
continue;
- if ((lookup_partial_symbol (ps, oload_name, 1, VAR_NAMESPACE) != NULL)
- || (lookup_partial_symbol (ps, oload_name, 0, VAR_NAMESPACE) != NULL))
+ if ((lookup_partial_symbol (ps, oload_name, NULL, 1, VAR_NAMESPACE)
+ != NULL)
+ || (lookup_partial_symbol (ps, oload_name, NULL, 0, VAR_NAMESPACE)
+ != NULL))
PSYMTAB_TO_SYMTAB (ps);
}
next reply other threads:[~2003-02-28 23:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-28 23:00 David Carlton [this message]
2003-03-02 7:37 Michael Elizabeth Chastain
2003-03-02 15:58 ` David Carlton
2003-06-22 18:35 ` Andrew Cagney
2003-06-24 20:45 ` David Carlton
2003-06-22 20:38 Michael Elizabeth Chastain
2003-06-22 20:49 ` Daniel Jacobowitz
2003-06-22 21:10 Michael Elizabeth Chastain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ro1el5sj9jn.fsf@jackfruit.Stanford.EDU \
--to=carlton@math.stanford.edu \
--cc=gdb-patches@sources.redhat.com \
--cc=mec@shout.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox