* objdump.c (struct objdump_disasm_info): Add field require_sec.
authorIan Lance Taylor <ian@airs.com>
Fri, 16 Sep 1994 15:30:38 +0000 (15:30 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 16 Sep 1994 15:30:38 +0000 (15:30 +0000)
(objdump_print_address): If aux->require_sec, require that the
symbol be in aux->sec even if HAS_RELOC is not set.
(disassemble_data): Set aux.require_sec around the
objdump_print_address call for the instruction address.
PR 3441.

binutils/ChangeLog
binutils/objdump.c

index 288c032414ef649b0b843465c66d261aedc144d9..797acdef63f581a155476a09d4783bd93ee96e4d 100644 (file)
@@ -1,3 +1,11 @@
+Fri Sep 16 11:27:39 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * objdump.c (struct objdump_disasm_info): Add field require_sec.
+       (objdump_print_address): If aux->require_sec, require that the
+       symbol be in aux->sec even if HAS_RELOC is not set.
+       (disassemble_data): Set aux.require_sec around the
+       objdump_print_address call for the instruction address.
+
 Thu Sep 15 21:43:17 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
        * ar.c: Call xexit rather than exit.
index e531f20637fbad897d88ed4ae96006c8402bcf25..496033f30119b257855b7a1f0e004345aa9218a4 100644 (file)
@@ -58,6 +58,7 @@ char *only;                   /* -j secname */
 struct objdump_disasm_info {
   bfd *abfd;
   asection *sec;
+  boolean require_sec;
 };
 
 /* Architecture to disassemble for, or default if NULL.  */
@@ -421,7 +422,8 @@ objdump_print_address (vma, info)
     long i;
 
     aux = (struct objdump_disasm_info *) info->application_data;
-    if ((aux->abfd->flags & HAS_RELOC)
+    if ((aux->require_sec
+        || (aux->abfd->flags & HAS_RELOC) != 0)
        && vma >= bfd_get_section_vma (aux->abfd, aux->sec)
        && vma < (bfd_get_section_vma (aux->abfd, aux->sec)
                  + bfd_get_section_size_before_reloc (aux->sec))
@@ -665,7 +667,9 @@ disassemble_data (abfd)
                        }
                    }
                }
+             aux.require_sec = true;
              objdump_print_address (section->vma + i, &disasm_info);
+             aux.require_sec = false;
              putchar (' ');
 
              if (disassemble_fn)