diff options
-rw-r--r-- | bfd/ChangeLog | 17 | ||||
-rw-r--r-- | bfd/archures.c | 11 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 10 | ||||
-rw-r--r-- | bfd/elflink.h | 13 | ||||
-rw-r--r-- | bfd/libbfd.c | 4 | ||||
-rw-r--r-- | bfd/section.c | 6 | ||||
-rw-r--r-- | bfd/trad-core.c | 2 | ||||
-rw-r--r-- | binutils/ChangeLog | 8 | ||||
-rw-r--r-- | binutils/objdump.c | 14 | ||||
-rw-r--r-- | gas/ChangeLog | 11 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 64 | ||||
-rw-r--r-- | gas/listing.c | 1 | ||||
-rw-r--r-- | include/ChangeLog | 7 | ||||
-rw-r--r-- | include/dis-asm.h | 8 | ||||
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/ldlang.c | 44 | ||||
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/dis-buf.c | 10 |
18 files changed, 159 insertions, 85 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ecb6642680..d5bf4dd5e9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,20 @@ +2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> + + * archures.c (bfd_octets_per_byte): Return unsigned int. + (bfd_arch_mach_octets_per_byte): Ditto. + * libbfd.c (bfd_read, bfd_seek): Quell signed vs. unsigned + comparison warning. + * section.c (bfd_get_section_size_before_reloc): Quell signed + vs. unsigned comparison warning. + (bfd_get_section_size_after_reloc): Same here. Fix parentheses too. + * trad-core.c (trad_unix_core_file_p): Correct 2000-01-27 + change. What was I thinking? + * bfd-in2.h: Regenerate. + + * elflink.h (elf_gc_sweep): Skip non-elf input bfds. + (elf_gc_sections): Same here. + (elf_gc_common_finalize_got_offsets): And here. + 2000-02-21 Ian Lance Taylor <ian@zembu.com> ELF HPPA doesn't work at present; remove it until it does. diff --git a/bfd/archures.c b/bfd/archures.c index 3c7dc13ab6..21e980e1bc 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -934,7 +934,7 @@ FUNCTION bfd_octets_per_byte SYNOPSIS - int bfd_octets_per_byte(bfd *abfd); + unsigned int bfd_octets_per_byte(bfd *abfd); DESCRIPTION Return the number of octets (8-bit quantities) per target byte @@ -943,7 +943,7 @@ DESCRIPTION */ -int +unsigned int bfd_octets_per_byte (abfd) bfd * abfd; { @@ -956,8 +956,8 @@ FUNCTION bfd_arch_mach_octets_per_byte SYNOPSIS - int bfd_arch_mach_octets_per_byte(enum bfd_architecture arch, - unsigned long machine); + unsigned int bfd_arch_mach_octets_per_byte(enum bfd_architecture arch, + unsigned long machine); DESCRIPTION See bfd_octets_per_byte. @@ -966,7 +966,7 @@ DESCRIPTION available */ -int +unsigned int bfd_arch_mach_octets_per_byte (arch, mach) enum bfd_architecture arch; unsigned long mach; @@ -977,4 +977,3 @@ bfd_arch_mach_octets_per_byte (arch, mach) return ap->bits_per_byte / 8; return 1; } - diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index d7b52db4fd..99bc67f69d 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1219,9 +1219,11 @@ extern const struct symbol_cache_entry * const bfd_com_symbol; extern const struct symbol_cache_entry * const bfd_und_symbol; extern const struct symbol_cache_entry * const bfd_ind_symbol; #define bfd_get_section_size_before_reloc(section) \ - (section->reloc_done ? (abort(),1): (section)->_raw_size) + ((section)->reloc_done ? (abort (), (bfd_size_type) 1) \ + : (section)->_raw_size) #define bfd_get_section_size_after_reloc(section) \ - ((section->reloc_done) ? (section)->_cooked_size: (abort(),1)) + ((section)->reloc_done ? (section)->_cooked_size \ + : (abort (), (bfd_size_type) 1)) asection * bfd_get_section_by_name PARAMS ((bfd *abfd, CONST char *name)); @@ -1467,10 +1469,10 @@ const char * bfd_printable_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long machine)); -int +unsigned int bfd_octets_per_byte PARAMS ((bfd *abfd)); -int +unsigned int bfd_arch_mach_octets_per_byte PARAMS ((enum bfd_architecture arch, unsigned long machine)); diff --git a/bfd/elflink.h b/bfd/elflink.h index 78a5e3413e..54577a66b9 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -6202,6 +6202,9 @@ elf_gc_sweep (info, gc_sweep_hook) { asection *o; + if (bfd_get_flavour (sub) != bfd_target_elf_flavour) + continue; + for (o = sub->sections; o != NULL; o = o->next) { /* Keep special sections. Keep .debug sections. */ @@ -6416,6 +6419,10 @@ elf_gc_sections (abfd, info) for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) { asection *o; + + if (bfd_get_flavour (sub) != bfd_target_elf_flavour) + continue; + for (o = sub->sections; o != NULL; o = o->next) { if (o->flags & SEC_KEEP) @@ -6571,10 +6578,14 @@ elf_gc_common_finalize_got_offsets (abfd, info) /* Do the local .got entries first. */ for (i = info->input_bfds; i; i = i->link_next) { - bfd_signed_vma *local_got = elf_local_got_refcounts (i); + bfd_signed_vma *local_got; bfd_size_type j, locsymcount; Elf_Internal_Shdr *symtab_hdr; + if (bfd_get_flavour (i) != bfd_target_elf_flavour) + continue; + + local_got = elf_local_got_refcounts (i); if (!local_got) continue; diff --git a/bfd/libbfd.c b/bfd/libbfd.c index fb833f60b6..881af73239 100644 --- a/bfd/libbfd.c +++ b/bfd/libbfd.c @@ -274,7 +274,7 @@ bfd_read (ptr, size, nitems, abfd) get = size * nitems; if (abfd->where + get > bim->size) { - if (bim->size < abfd->where) + if (bim->size < (bfd_size_type) abfd->where) get = 0; else get = bim->size - abfd->where; @@ -689,7 +689,7 @@ bfd_seek (abfd, position, direction) else abfd->where += position; - if (abfd->where > bim->size) + if ((bfd_size_type) abfd->where > bim->size) { abfd->where = bim->size; bfd_set_error (bfd_error_file_truncated); diff --git a/bfd/section.c b/bfd/section.c index 6e50d168ba..b3b760802d 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -508,9 +508,11 @@ CODE_FRAGMENT .extern const struct symbol_cache_entry * const bfd_und_symbol; .extern const struct symbol_cache_entry * const bfd_ind_symbol; .#define bfd_get_section_size_before_reloc(section) \ -. (section->reloc_done ? (abort(),1): (section)->_raw_size) +. ((section)->reloc_done ? (abort (), (bfd_size_type) 1) \ +. : (section)->_raw_size) .#define bfd_get_section_size_after_reloc(section) \ -. ((section->reloc_done) ? (section)->_cooked_size: (abort(),1)) +. ((section)->reloc_done ? (section)->_cooked_size \ +. : (abort (), (bfd_size_type) 1)) */ /* We use a macro to initialize the static asymbol structures because diff --git a/bfd/trad-core.c b/bfd/trad-core.c index 92c5b6324e..633c53d983 100644 --- a/bfd/trad-core.c +++ b/bfd/trad-core.c @@ -202,7 +202,7 @@ trad_unix_core_file_p (abfd) 0 is at the place pointed to by u_ar0 (by setting the vma of the start of the section to -u_ar0). GDB uses this info to locate the regs, using minor trickery to get around the offset-or-absolute-addr problem. */ - core_regsec (abfd)->vma = (asection *) (0 - (bfd_vma) u.u_ar0); + core_regsec (abfd)->vma = - (bfd_vma) u.u_ar0; core_datasec (abfd)->filepos = NBPG * UPAGES; core_stacksec (abfd)->filepos = (NBPG * UPAGES) + NBPG * u.u_dsize diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c7b171699c..89376b99c0 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> + + * objdump.c (dump_section_header): Change `opb' to unsigned. + (find_symbol_for_address): Same here. + (disassemble_data): And here. Change `addr_offset', + `stop_offset', `nextstop_offset' to unsigned long. + (dump_data): Change opb to unsigned. + 2000-02-18 Frank Ch. Eigler <fche@redhat.com> * resrc.c: Remove unmatched #if for cygwin. diff --git a/binutils/objdump.c b/binutils/objdump.c index deaf991962..488d4f3f3c 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -340,7 +340,7 @@ dump_section_header (abfd, section, ignored) PTR ignored ATTRIBUTE_UNUSED; { char *comma = ""; - int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd); printf ("%3d %-13s %08lx ", section->index, bfd_get_section_name (abfd, section), @@ -743,7 +743,7 @@ find_symbol_for_address (abfd, sec, vma, require_sec, place) long min = 0; long max = sorted_symcount; long thisplace; - int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd); if (sorted_symcount < 1) return NULL; @@ -1574,12 +1574,12 @@ static void disassemble_data (abfd) bfd *abfd; { - long addr_offset; + unsigned long addr_offset; disassembler_ftype disassemble_fn; struct disassemble_info disasm_info; struct objdump_disasm_info aux; asection *section; - int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd); print_files = NULL; prev_functionname = NULL; @@ -1659,7 +1659,7 @@ disassemble_data (abfd) arelent **relbuf = NULL; arelent **relpp = NULL; arelent **relppend = NULL; - long stop_offset; + unsigned long stop_offset; asymbol *sym = NULL; long place = 0; @@ -1743,7 +1743,7 @@ disassemble_data (abfd) while (addr_offset < stop_offset) { asymbol *nextsym; - long nextstop_offset; + unsigned long nextstop_offset; boolean insns; if (sym != NULL && bfd_asymbol_value (sym) <= section->vma + addr_offset) @@ -2264,7 +2264,7 @@ dump_data (abfd) bfd_size_type datasize = 0; bfd_size_type addr_offset; bfd_size_type start_offset, stop_offset; - int opb = bfd_octets_per_byte (abfd); + unsigned int opb = bfd_octets_per_byte (abfd); for (section = abfd->sections; section != NULL; section = section->next) diff --git a/gas/ChangeLog b/gas/ChangeLog index 8eeb49b29e..1b944a968d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,14 @@ +2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> + + * listing.c (print_lines): Remove unused variable `end'. + + * config/tc-i386.c (md_assemble): Use `reloc()' to select reloc + type for JumpInterSegment output. Use enum bfd_reloc_code_real for + reloc_type when BFD_ASSEMBLER. + (md_estimate_size_before_relax): Use enum bfd_reloc_code_real for + reloc_type when BFD_ASSEMBLER. Move common code out of switch + statement and quell signed vs. unsigned comparison warning. + 2000-02-18 Nick Clifton <nickc@cygnus.com> * config/tc-d10v.c (find_opcode): Add a symbol's value to diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 5e7bb781e8..43886d1efe 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -892,7 +892,7 @@ tc_i386_force_relocation (fixp) return 0; #else /* For COFF */ - return fixp->fx_r_type==7; + return fixp->fx_r_type == 7; #endif } @@ -2204,7 +2204,6 @@ md_assemble (line) else if (i.tm.opcode_modifier & JumpInterSegment) { int size; - int reloc_type; int prefix; int code16; @@ -2221,12 +2220,8 @@ md_assemble (line) } size = 4; - reloc_type = BFD_RELOC_32; if (code16) - { - size = 2; - reloc_type = BFD_RELOC_16; - } + size = 2; if (i.prefixes != 0 && !intel_syntax) as_warn (_("skipping prefixes on this instruction")); @@ -2249,7 +2244,7 @@ md_assemble (line) } else fix_new_exp (frag_now, p - frag_now->fr_literal, size, - i.imms[1], 0, reloc_type); + i.imms[1], 0, reloc (size, 0, i.disp_reloc[0])); if (i.imms[0]->X_op != O_constant) as_bad (_("can't handle non absolute segment in `%s'"), i.tm.name); @@ -2424,7 +2419,11 @@ md_assemble (line) /* Need a 32-bit fixup (don't support 8bit non-absolute ims). Try to support other sizes ... */ - int r_type; +#ifdef BFD_ASSEMBLER + enum bfd_reloc_code_real reloc_type; +#else + int reloc_type; +#endif int size; int pcrel = 0; @@ -2436,9 +2435,9 @@ md_assemble (line) size = 4; insn_size += size; p = frag_more (size); - r_type = reloc (size, 0, i.disp_reloc[0]); + reloc_type = reloc (size, 0, i.disp_reloc[0]); #ifdef BFD_ASSEMBLER - if (r_type == BFD_RELOC_32 + if (reloc_type == BFD_RELOC_32 && GOT_symbol && GOT_symbol == i.imms[n]->X_add_symbol && (i.imms[n]->X_op == O_symbol @@ -2447,12 +2446,12 @@ md_assemble (line) (i.imms[n]->X_op_symbol)->X_op) == O_subtract)))) { - r_type = BFD_RELOC_386_GOTPC; + reloc_type = BFD_RELOC_386_GOTPC; i.imms[n]->X_add_number += 3; } #endif fix_new_exp (frag_now, p - frag_now->fr_literal, size, - i.imms[n], pcrel, r_type); + i.imms[n], pcrel, reloc_type); } } } @@ -3643,7 +3642,24 @@ md_estimate_size_before_relax (fragP, segment) /* symbol is undefined in this segment */ int code16 = fragP->fr_subtype & CODE16; int size = code16 ? 2 : 4; - int pcrel_reloc = code16 ? BFD_RELOC_16_PCREL : BFD_RELOC_32_PCREL; +#ifdef BFD_ASSEMBLER + enum bfd_reloc_code_real reloc_type; +#else + int reloc_type; +#endif + + if (GOT_symbol /* Not quite right - we should switch on presence of + @PLT, but I cannot see how to get to that from + here. We should have done this in md_assemble to + really get it right all of the time, but I think it + does not matter that much, as this will be right + most of the time. ERY */ + && S_GET_SEGMENT(fragP->fr_symbol) == undefined_section) + reloc_type = BFD_RELOC_386_PLT32; + else if (code16) + reloc_type = BFD_RELOC_16_PCREL; + else + reloc_type = BFD_RELOC_32_PCREL; switch (opcode[0]) { @@ -3653,31 +3669,19 @@ md_estimate_size_before_relax (fragP, segment) fix_new (fragP, old_fr_fix, size, fragP->fr_symbol, fragP->fr_offset, 1, - (GOT_symbol && /* Not quite right - we should switch on - presence of @PLT, but I cannot see how - to get to that from here. We should have - done this in md_assemble to really - get it right all of the time, but I - think it does not matter that much, as - this will be right most of the time. ERY*/ - S_GET_SEGMENT(fragP->fr_symbol) == undefined_section) - ? BFD_RELOC_386_PLT32 : pcrel_reloc); + reloc_type); break; default: /* This changes the byte-displacement jump 0x7N - to the dword-displacement jump 0x0f8N. */ + to the dword-displacement jump 0x0f,0x8N. */ opcode[1] = opcode[0] + 0x10; - opcode[0] = TWO_BYTE_OPCODE_ESCAPE; /* two-byte escape */ + opcode[0] = TWO_BYTE_OPCODE_ESCAPE; fragP->fr_fix += 1 + size; /* we've added an opcode byte */ fix_new (fragP, old_fr_fix + 1, size, fragP->fr_symbol, fragP->fr_offset, 1, - (GOT_symbol && /* Not quite right - we should switch on - presence of @PLT, but I cannot see how - to get to that from here. ERY */ - S_GET_SEGMENT(fragP->fr_symbol) == undefined_section) - ? BFD_RELOC_386_PLT32 : pcrel_reloc); + reloc_type); break; } frag_wane (fragP); diff --git a/gas/listing.c b/gas/listing.c index 0df6aa1e91..205d62815d 100644 --- a/gas/listing.c +++ b/gas/listing.c @@ -679,7 +679,6 @@ print_lines (list, lineno, string, address) unsigned int lines; unsigned int octet_in_word = 0; char *src = data_buffer; - int end = strlen(src); int cur; /* Print the stuff on the first line */ diff --git a/include/ChangeLog b/include/ChangeLog index 13faae474a..f377d21f0c 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> + + * dis-asm.h (struct disassemble_info): Change `length' param of + read_memory_func to unsigned. Change type of `buffer_length' and + `octets_per_byte' to unsigned. + (buffer_read_memory): Change `length' param to unsigned. + 2000-02-16 Nick Clifton <nickc@cygnus.com> * dis-asm.h: Add prototypes for ARM register name functions. diff --git a/include/dis-asm.h b/include/dis-asm.h index ee86961843..1f835d3333 100644 --- a/include/dis-asm.h +++ b/include/dis-asm.h @@ -78,7 +78,7 @@ typedef struct disassemble_info { INFO is a pointer to this struct. Returns an errno value or 0 for success. */ int (*read_memory_func) - PARAMS ((bfd_vma memaddr, bfd_byte *myaddr, int length, + PARAMS ((bfd_vma memaddr, bfd_byte *myaddr, unsigned int length, struct disassemble_info *info)); /* Function which should be called if we get an error that we can't @@ -105,7 +105,7 @@ typedef struct disassemble_info { /* These are for buffer_read_memory. */ bfd_byte *buffer; bfd_vma buffer_vma; - int buffer_length; + unsigned int buffer_length; /* This variable may be set by the instruction decoder. It suggests the number of bytes objdump should display on a single line. If @@ -124,7 +124,7 @@ typedef struct disassemble_info { /* Number of octets per incremented target address Normally one, but some DSPs have byte sizes of 16 or 32 bits */ - int octets_per_byte; + unsigned int octets_per_byte; /* Results from instruction decoders. Not all decoders yet support this information. This info is set each time an instruction is @@ -213,7 +213,7 @@ extern void disassembler_usage PARAMS ((FILE *)); /* Here is a function which callers may wish to use for read_memory_func. It gets bytes from a buffer. */ extern int buffer_read_memory - PARAMS ((bfd_vma, bfd_byte *, int, struct disassemble_info *)); + PARAMS ((bfd_vma, bfd_byte *, unsigned int, struct disassemble_info *)); /* This function goes with buffer_read_memory. It prints a message using info->fprintf_func and info->stream. */ diff --git a/ld/ChangeLog b/ld/ChangeLog index b42e949e1c..7d6db0ef64 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> + + * ldlang.c (print_input_section, print_data_statement, + print_reloc_statement, print_padding_statement, insert_pad, + size_input_section, lang_check_section_addresses, + lang_size_sections, lang_do_assignments, lang_set_startof, + lang_one_common): Change `opb' to unsigned. + (lang_do_assignments): Also change `size' to unsigned. + 2000-02-16 Richard Henderson <rth@cygnus.com> * scripttempl/elf.sc: Place OTHER_PLT_RELOC_SECTION. diff --git a/ld/ldlang.c b/ld/ldlang.c index a514ea0aff..d40ff07a5b 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -2169,8 +2169,8 @@ print_input_section (in) { asection *i = in->section; bfd_size_type size = i->_cooked_size != 0 ? i->_cooked_size : i->_raw_size; - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); if (size != 0) { print_space (); @@ -2236,8 +2236,8 @@ print_data_statement (data) bfd_vma addr; bfd_size_type size; const char *name; - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); for (i = 0; i < SECTION_NAME_MAP_LENGTH; i++) print_space (); @@ -2307,8 +2307,8 @@ print_reloc_statement (reloc) int i; bfd_vma addr; bfd_size_type size; - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); for (i = 0; i < SECTION_NAME_MAP_LENGTH; i++) print_space (); @@ -2339,8 +2339,8 @@ print_padding_statement (s) { int len; bfd_vma addr; - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); minfo (" *fill*"); @@ -2556,8 +2556,8 @@ insert_pad (this_ptr, fill, power, output_section_statement, dot) inserting a magic 'padding' statement. */ - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); unsigned int alignment_needed = align_power (dot, power) - dot; if (alignment_needed != 0) @@ -2599,8 +2599,8 @@ size_input_section (this_ptr, output_section_statement, fill, dot, relax) { lang_input_section_type *is = &((*this_ptr)->input_section); asection *i = is->section; - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); if (is->ifile->just_syms_flag == false) { @@ -2643,7 +2643,7 @@ static void lang_check_section_addresses () { asection * s; - int opb = bfd_octets_per_byte (output_bfd); + unsigned opb = bfd_octets_per_byte (output_bfd); /* Scan all sections in the output list. */ for (s = output_bfd->sections; s != NULL; s = s->next) @@ -2744,8 +2744,8 @@ lang_size_sections (s, output_section_statement, prev, fill, dot, relax) bfd_vma dot; boolean relax; { - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); /* Size up the sections from their constituent parts. */ for (; s != (lang_statement_union_type *) NULL; s = s->next) @@ -3119,8 +3119,8 @@ lang_do_assignments (s, output_section_statement, fill, dot) fill_type fill; bfd_vma dot; { - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); for (; s != (lang_statement_union_type *) NULL; s = s->next) { @@ -3185,7 +3185,7 @@ lang_do_assignments (s, output_section_statement, fill, dot) einfo (_("%F%P: invalid data statement\n")); } { - int size; + unsigned int size; switch (s->data_statement.type) { default: @@ -3309,8 +3309,8 @@ lang_set_startof () h = bfd_link_hash_lookup (link_info.hash, buf, false, false, true); if (h != NULL && h->type == bfd_link_hash_undefined) { - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); h->type = bfd_link_hash_defined; if (s->_cooked_size != 0) h->u.def.value = s->_cooked_size / opb; @@ -3492,8 +3492,8 @@ lang_one_common (h, info) unsigned int power_of_two; bfd_vma size; asection *section; - int opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, - ldfile_output_machine); + unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, + ldfile_output_machine); if (h->type != bfd_link_hash_common) return true; diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 2c7e9f5872..6c3815c9f2 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> + + * dis-buf.c (buffer_read_memory): Change `length' param and all int + vars to unsigned. + Thu Feb 17 00:18:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk> * sh-dis.c (print_movxy, print_insn_ddt, print_dsp_reg): New functions. diff --git a/opcodes/dis-buf.c b/opcodes/dis-buf.c index 65b1edb3e6..b828206d43 100644 --- a/opcodes/dis-buf.c +++ b/opcodes/dis-buf.c @@ -26,13 +26,13 @@ int buffer_read_memory (memaddr, myaddr, length, info) bfd_vma memaddr; bfd_byte *myaddr; - int length; + unsigned int length; struct disassemble_info *info; { - int opb = info->octets_per_byte; - int end_addr_offset = length / opb; - int max_addr_offset = info->buffer_length / opb; - int octets = (memaddr - info->buffer_vma) * opb; + unsigned int opb = info->octets_per_byte; + unsigned int end_addr_offset = length / opb; + unsigned int max_addr_offset = info->buffer_length / opb; + unsigned int octets = (memaddr - info->buffer_vma) * opb; if (memaddr < info->buffer_vma || memaddr - info->buffer_vma + end_addr_offset > max_addr_offset) |