summaryrefslogtreecommitdiff
path: root/gdb/mdebugread.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/mdebugread.c')
-rw-r--r--gdb/mdebugread.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 43542eae673..4bcda4b9d74 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -2601,7 +2601,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
{
legacy_psymtab *save_pst;
EXTR *ext_ptr;
- CORE_ADDR textlow;
+ unrelocated_addr textlow;
cur_fdr = fh = debug_info->fdr + f_idx;
@@ -2614,9 +2614,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
/* Determine the start address for this object file from the
file header and relocate it, except for Irix 5.2 zero fh->adr. */
if (fh->cpd)
- textlow = fh->adr;
+ textlow = unrelocated_addr (fh->adr);
else
- textlow = 0;
+ textlow = unrelocated_addr (0);
pst = new legacy_psymtab (fdr_name (fh), partial_symtabs,
objfile->per_bfd, textlow);
pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, md_symloc);
@@ -2695,7 +2695,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
{
if (sh.st == stProc || sh.st == stStaticProc)
{
- CORE_ADDR procaddr;
+ unrelocated_addr procaddr;
long isym;
if (sh.st == stStaticProc)
@@ -2705,7 +2705,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
mst_file_text, sh.sc,
objfile);
}
- procaddr = sh.value;
+ procaddr = unrelocated_addr (sh.value);
isym = AUX_GET_ISYM (fh->fBigendian,
(debug_info->external_aux
@@ -2718,7 +2718,9 @@ parse_partial_symbols (minimal_symbol_reader &reader,
&sh);
if (sh.st == stEnd)
{
- CORE_ADDR high = procaddr + sh.value;
+ unrelocated_addr high
+ = unrelocated_addr (CORE_ADDR (procaddr)
+ + sh.value);
/* Kludge for Irix 5.2 zero fh->adr. */
if (!relocatable
@@ -3304,8 +3306,12 @@ parse_partial_symbols (minimal_symbol_reader &reader,
continue;
case N_RBRAC:
- if (sh.value > save_pst->raw_text_high ())
- save_pst->set_text_high (sh.value);
+ {
+ unrelocated_addr unrel_value
+ = unrelocated_addr (sh.value);
+ if (unrel_value > save_pst->raw_text_high ())
+ save_pst->set_text_high (unrel_value);
+ }
continue;
case N_EINCL:
case N_DSLINE:
@@ -3409,8 +3415,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
switch (sh.st)
{
- CORE_ADDR high;
- CORE_ADDR procaddr;
+ unrelocated_addr high;
+ unrelocated_addr procaddr;
int new_sdx;
case stStaticProc:
@@ -3479,7 +3485,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
sh.value, psymtab_language,
partial_symtabs, objfile);
- procaddr = sh.value;
+ procaddr = unrelocated_addr (sh.value);
cur_sdx = new_sdx;
(*swap_sym_in) (cur_bfd,
@@ -3496,7 +3502,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|| procaddr < pst->raw_text_low ()))
pst->set_text_low (procaddr);
- high = procaddr + sh.value;
+ high = unrelocated_addr (CORE_ADDR (procaddr) + sh.value);
if (high > pst->raw_text_high ())
pst->set_text_high (high);
continue;
@@ -4005,7 +4011,7 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
if (! last_symtab_ended)
{
- cust = end_compunit_symtab (pst->raw_text_high ());
+ cust = end_compunit_symtab (pst->text_high (objfile));
end_stabs ();
}