* dbxread.c (process_one_symbol): Don't use error result from

find_stab_function_addr().
	* partial-stab.h (case 'F'): Likewise.

	* partial-stab.h (case 'f'): Make SOFUN_ADDRESS_MAYBE_MISSING
	code match that used for case 'F'.  This fixes the divergence
	that was introduced by my 1999-09-14 changes to partial-stab.h.
This commit is contained in:
Kevin Buettner
2001-10-15 20:38:14 +00:00
parent 57d5edf012
commit 83ac78c06a
3 changed files with 47 additions and 6 deletions

View File

@@ -1,3 +1,13 @@
2001-10-15 Kevin Buettner <kevinb@redhat.com>
* dbxread.c (process_one_symbol): Don't use error result from
find_stab_function_addr().
* partial-stab.h (case 'F'): Likewise.
* partial-stab.h (case 'f'): Make SOFUN_ADDRESS_MAYBE_MISSING
code match that used for case 'F'. This fixes the divergence
that was introduced by my 1999-09-14 changes to partial-stab.h.
2001-10-13 Andrew Cagney <ac131313@redhat.com>
S/390 31 & 64 bit target and GNU/Linux native support.

View File

@@ -2270,8 +2270,18 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
from N_FUN symbols. */
if (type == N_FUN
&& valu == ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile)))
valu =
find_stab_function_addr (name, last_source_file, objfile);
{
CORE_ADDR minsym_valu =
find_stab_function_addr (name, last_source_file, objfile);
/* find_stab_function_addr will return 0 if the minimal
symbol wasn't found. (Unfortunately, this might also
be a valid address.) Anyway, if it *does* return 0,
it is likely that the value was set correctly to begin
with... */
if (minsym_valu != 0)
valu = minsym_valu;
}
#endif
#ifdef SUN_FIXED_LBRAC_BUG

View File

@@ -595,10 +595,22 @@ switch (CUR_SYMBOL_TYPE)
#ifdef SOFUN_ADDRESS_MAYBE_MISSING
/* Do not fix textlow==0 for .o or NLM files, as 0 is a legit
value for the bottom of the text seg in those cases. */
if (CUR_SYMBOL_VALUE == ANOFFSET (objfile->section_offsets,
SECT_OFF_TEXT (objfile)))
{
CORE_ADDR minsym_valu =
find_stab_function_addr (namestring, pst->filename, objfile);
/* find_stab_function_addr will return 0 if the minimal
symbol wasn't found. (Unfortunately, this might also
be a valid address.) Anyway, if it *does* return 0,
it is likely that the value was set correctly to begin
with... */
if (minsym_valu != 0)
CUR_SYMBOL_VALUE = minsym_valu;
}
if (pst && textlow_not_set)
{
pst->textlow =
find_stab_function_addr (namestring, pst->filename, objfile);
pst->textlow = CUR_SYMBOL_VALUE;
textlow_not_set = 0;
}
#endif
@@ -652,8 +664,17 @@ switch (CUR_SYMBOL_TYPE)
value for the bottom of the text seg in those cases. */
if (CUR_SYMBOL_VALUE == ANOFFSET (objfile->section_offsets,
SECT_OFF_TEXT (objfile)))
CUR_SYMBOL_VALUE =
find_stab_function_addr (namestring, pst->filename, objfile);
{
CORE_ADDR minsym_valu =
find_stab_function_addr (namestring, pst->filename, objfile);
/* find_stab_function_addr will return 0 if the minimal
symbol wasn't found. (Unfortunately, this might also
be a valid address.) Anyway, if it *does* return 0,
it is likely that the value was set correctly to begin
with... */
if (minsym_valu != 0)
CUR_SYMBOL_VALUE = minsym_valu;
}
if (pst && textlow_not_set)
{
pst->textlow = CUR_SYMBOL_VALUE;