diff options
Diffstat (limited to 'binutils-2.25/bfd/coff-x86_64.c')
-rw-r--r-- | binutils-2.25/bfd/coff-x86_64.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/binutils-2.25/bfd/coff-x86_64.c b/binutils-2.25/bfd/coff-x86_64.c index 946880e0..2a21bb8b 100644 --- a/binutils-2.25/bfd/coff-x86_64.c +++ b/binutils-2.25/bfd/coff-x86_64.c @@ -1,6 +1,5 @@ /* BFD back-end for AMD 64 COFF files. - Copyright 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 2006-2014 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -449,6 +448,8 @@ static reloc_howto_type howto_table[] = PCRELOFFSET) /* pcrel_offset */ }; +#define NUM_HOWTOS ARRAY_SIZE (howto_table) + /* Turn a howto into a reloc nunmber */ #define SELECT_RELOC(x,howto) { x.r_type = howto->type; } @@ -457,7 +458,7 @@ static reloc_howto_type howto_table[] = #define RTYPE2HOWTO(cache_ptr, dst) \ ((cache_ptr)->howto = \ - ((dst)->r_type < ARRAY_SIZE (howto_table)) \ + ((dst)->r_type < NUM_HOWTOS) \ ? howto_table + (dst)->r_type \ : NULL) @@ -497,7 +498,8 @@ static reloc_howto_type howto_table[] = cache_ptr->addend = - (ptr->section->vma + ptr->value); \ else \ cache_ptr->addend = 0; \ - if (ptr && howto_table[reloc.r_type].pc_relative) \ + if (ptr && reloc.r_type < NUM_HOWTOS \ + && howto_table[reloc.r_type].pc_relative) \ cache_ptr->addend += asect->vma; \ } @@ -547,7 +549,7 @@ coff_amd64_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, { reloc_howto_type *howto; - if (rel->r_type >= ARRAY_SIZE (howto_table)) + if (rel->r_type >= NUM_HOWTOS) { bfd_set_error (bfd_error_bad_value); return NULL; @@ -690,7 +692,7 @@ coff_amd64_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, { unsigned int i; - for (i = 0; i < sizeof (howto_table) / sizeof (howto_table[0]); i++) + for (i = 0; i < NUM_HOWTOS; i++) if (howto_table[i].name != NULL && strcasecmp (howto_table[i].name, r_name) == 0) return &howto_table[i]; @@ -731,14 +733,11 @@ coff_amd64_is_local_label_name (bfd *abfd, const char *name) #define amd64coff_object_p coff_object_p #endif -#define _bfd_generic_find_nearest_line_discriminator \ - coff_find_nearest_line_discriminator - const bfd_target #ifdef TARGET_SYM TARGET_SYM = #else - x86_64coff_vec = + x86_64_coff_vec = #endif { #ifdef TARGET_NAME |