* ecoff.c (ecoff_find_nearest_line): Handle fdr.adr != pdr.adr

correctly.
This commit is contained in:
Ian Lance Taylor 1994-05-11 16:46:04 +00:00
parent 1cfc93e10d
commit 4fa4476bf8
2 changed files with 8 additions and 2 deletions

View File

@ -1,5 +1,8 @@
Wed May 11 00:31:57 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* ecoff.c (ecoff_find_nearest_line): Handle fdr.adr != pdr.adr
correctly.
* Makefile.in (stmp-bfd.h): Use || instead of ; to force SunOS
make to invoke the shell.

View File

@ -2007,6 +2007,7 @@ ecoff_find_nearest_line (abfd,
char *pdr_ptr;
char *pdr_end;
PDR pdr;
bfd_vma first_off;
unsigned char *line_ptr;
unsigned char *line_end;
int lineno;
@ -2052,10 +2053,12 @@ ecoff_find_nearest_line (abfd,
+ fdr_ptr->ipdFirst * external_pdr_size);
pdr_end = pdr_ptr + fdr_ptr->cpd * external_pdr_size;
(*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr);
if (offset < pdr.adr)
return false;
/* The address of the first PDR is an offset which applies to the
addresses of all the PDR's. */
offset += pdr.adr;
first_off = pdr.adr;
for (pdr_ptr += external_pdr_size;
pdr_ptr < pdr_end;
@ -2080,7 +2083,7 @@ ecoff_find_nearest_line (abfd,
pdr_ptr -= external_pdr_size;
(*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr);
offset -= pdr.adr;
offset -= pdr.adr - first_off;
lineno = pdr.lnLow;
line_ptr = (ecoff_data (abfd)->debug_info.line
+ fdr_ptr->cbLineOffset