Fix illegal memory access parsing a corrupt MACH-O format file.
[deliverable/binutils-gdb.git] / bfd / coff-mips.c
index d20f4b465976d7c6a2de29499d9903befdd5db47..963ab249119620123c5da4d3e904ed1f7c8ecaab 100644 (file)
@@ -86,52 +86,52 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         0,                     /* size (0 = byte, 1 = short, 2 = long) */
         8,                     /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         0,                     /* special_function */
         "IGNORE",              /* name */
-        FALSE,                 /* partial_inplace */
+        false,                 /* partial_inplace */
         0,                     /* src_mask */
         0,                     /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* A 16 bit reference to a symbol, normally from a data section.  */
   HOWTO (MIPS_R_REFHALF,       /* type */
         0,                     /* rightshift */
         1,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_generic_reloc,    /* special_function */
         "REFHALF",             /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* A 32 bit reference to a symbol, normally from a data section.  */
   HOWTO (MIPS_R_REFWORD,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_generic_reloc,    /* special_function */
         "REFWORD",             /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* A 26 bit absolute jump address.  */
   HOWTO (MIPS_R_JMPADDR,       /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
                                /* This needs complex overflow
@@ -139,10 +139,10 @@ static reloc_howto_type mips_howto_table[] =
                                   bits must match the PC.  */
         mips_generic_reloc,    /* special_function */
         "JMPADDR",             /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* The high 16 bits of a symbol value.  Handled by the function
      mips_refhi_reloc.  */
@@ -150,30 +150,30 @@ static reloc_howto_type mips_howto_table[] =
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
         mips_refhi_reloc,      /* special_function */
         "REFHI",               /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* The low 16 bits of a symbol value.  */
   HOWTO (MIPS_R_REFLO,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_dont, /* complain_on_overflow */
         mips_reflo_reloc,      /* special_function */
         "REFLO",               /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* A reference to an offset from the gp register.  Handled by the
      function mips_gprel_reloc.  */
@@ -181,15 +181,15 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_gprel_reloc,      /* special_function */
         "GPREL",               /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   /* A reference to a literal using an offset from the gp register.
      Handled by the function mips_gprel_reloc.  */
@@ -197,15 +197,15 @@ static reloc_howto_type mips_howto_table[] =
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        FALSE,                 /* pc_relative */
+        false,                 /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_gprel_reloc,      /* special_function */
         "LITERAL",             /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        false),                /* pcrel_offset */
 
   EMPTY_HOWTO (8),
   EMPTY_HOWTO (9),
@@ -219,15 +219,15 @@ static reloc_howto_type mips_howto_table[] =
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
-        TRUE,                  /* pc_relative */
+        true,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed, /* complain_on_overflow */
         mips_generic_reloc,    /* special_function */
         "PCREL16",             /* name */
-        TRUE,                  /* partial_inplace */
+        true,                  /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        true),                 /* pcrel_offset */
 };
 
 #define MIPS_HOWTO_COUNT \
@@ -235,7 +235,7 @@ static reloc_howto_type mips_howto_table[] =
 \f
 /* See whether the magic number matches.  */
 
-static bfd_boolean
+static bool
 mips_ecoff_bad_format_hook (bfd * abfd, void * filehdr)
 {
   struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr;
@@ -244,7 +244,7 @@ mips_ecoff_bad_format_hook (bfd * abfd, void * filehdr)
     {
     case MIPS_MAGIC_1:
       /* I don't know what endianness this implies.  */
-      return TRUE;
+      return true;
 
     case MIPS_MAGIC_BIG:
     case MIPS_MAGIC_BIG2:
@@ -257,7 +257,7 @@ mips_ecoff_bad_format_hook (bfd * abfd, void * filehdr)
       return bfd_little_endian (abfd);
 
     default:
-      return FALSE;
+      return false;
     }
 }
 \f
@@ -562,7 +562,7 @@ mips_gprel_reloc (bfd *abfd ATTRIBUTE_UNUSED,
                  bfd *output_bfd,
                  char **error_message ATTRIBUTE_UNUSED)
 {
-  bfd_boolean relocatable;
+  bool relocatable;
   bfd_vma gp;
   bfd_vma relocation;
   unsigned long val;
@@ -581,10 +581,10 @@ mips_gprel_reloc (bfd *abfd ATTRIBUTE_UNUSED,
     }
 
   if (output_bfd != (bfd *) NULL)
-    relocatable = TRUE;
+    relocatable = true;
   else
     {
-      relocatable = FALSE;
+      relocatable = false;
       output_bfd = symbol->section->output_section->owner;
     }
 
@@ -792,7 +792,7 @@ mips_relocate_hi (struct internal_reloc *refhi,
 
 /* Relocate a section while linking a MIPS ECOFF file.  */
 
-static bfd_boolean
+static bool
 mips_relocate_section (bfd *output_bfd,
                       struct bfd_link_info *info,
                       bfd *input_bfd,
@@ -803,11 +803,11 @@ mips_relocate_section (bfd *output_bfd,
   asection **symndx_to_section;
   struct ecoff_link_hash_entry **sym_hashes;
   bfd_vma gp;
-  bfd_boolean gp_undefined;
+  bool gp_undefined;
   struct external_reloc *ext_rel;
   struct external_reloc *ext_rel_end;
   unsigned int i;
-  bfd_boolean got_lo;
+  bool got_lo;
   struct internal_reloc lo_int_rel;
   bfd_size_type amt;
 
@@ -823,7 +823,7 @@ mips_relocate_section (bfd *output_bfd,
       amt = NUM_RELOC_SECTIONS * sizeof (asection *);
       symndx_to_section = (asection **) bfd_alloc (input_bfd, amt);
       if (!symndx_to_section)
-       return FALSE;
+       return false;
 
       symndx_to_section[RELOC_SECTION_NONE] = NULL;
       symndx_to_section[RELOC_SECTION_TEXT] =
@@ -858,18 +858,18 @@ mips_relocate_section (bfd *output_bfd,
 
   gp = _bfd_get_gp_value (output_bfd);
   if (gp == 0)
-    gp_undefined = TRUE;
+    gp_undefined = true;
   else
-    gp_undefined = FALSE;
+    gp_undefined = false;
 
-  got_lo = FALSE;
+  got_lo = false;
 
   ext_rel = (struct external_reloc *) external_relocs;
   ext_rel_end = ext_rel + input_section->reloc_count;
   for (i = 0; ext_rel < ext_rel_end; ext_rel++, i++)
     {
       struct internal_reloc int_rel;
-      bfd_boolean use_lo = FALSE;
+      bool use_lo = false;
       bfd_vma addend;
       reloc_howto_type *howto;
       struct ecoff_link_hash_entry *h = NULL;
@@ -882,7 +882,7 @@ mips_relocate_section (bfd *output_bfd,
       else
        {
          int_rel = lo_int_rel;
-         got_lo = FALSE;
+         got_lo = false;
        }
 
       BFD_ASSERT (int_rel.r_type
@@ -912,9 +912,9 @@ mips_relocate_section (bfd *output_bfd,
              && int_rel.r_extern == lo_int_rel.r_extern
              && int_rel.r_symndx == lo_int_rel.r_symndx)
            {
-             use_lo = TRUE;
+             use_lo = true;
              if (lo_ext_rel == ext_rel + 1)
-               got_lo = TRUE;
+               got_lo = true;
            }
        }
 
@@ -956,7 +956,7 @@ mips_relocate_section (bfd *output_bfd,
              /* Only give the error once per link.  */
              gp = 4;
              _bfd_set_gp_value (output_bfd, gp);
-             gp_undefined = FALSE;
+             gp_undefined = false;
            }
          if (! int_rel.r_extern)
            {
@@ -1158,7 +1158,7 @@ mips_relocate_section (bfd *output_bfd,
                {
                  (*info->callbacks->undefined_symbol)
                    (info, h->root.root.string, input_bfd, input_section,
-                    int_rel.r_vaddr - input_section->vma, TRUE);
+                    int_rel.r_vaddr - input_section->vma, true);
                  relocation = 0;
                }
            }
@@ -1236,7 +1236,7 @@ mips_relocate_section (bfd *output_bfd,
        }
     }
 
-  return TRUE;
+  return true;
 }
 
 static void
@@ -1313,8 +1313,8 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
     mips_ecoff_swap_coff_reloc_out,
     mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out,
     mips_ecoff_swap_scnhdr_out,
-    FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE,
-    ECOFF_NO_LONG_SECTION_NAMES, 4, FALSE, 2, 32768,
+    FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, true,
+    ECOFF_NO_LONG_SECTION_NAMES, 4, false, 2, 32768,
     mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in,
     mips_ecoff_swap_scnhdr_in, NULL,
     mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook,
@@ -1333,7 +1333,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
   /* TRUE if the .rdata section is part of the text segment, as on the
      Alpha.  FALSE if .rdata is part of the data segment, as on the
      MIPS.  */
-  FALSE,
+  false,
   /* Bitsize of constructor entries.  */
   32,
   /* Reloc to use for constructor entries.  */
This page took 0.051274 seconds and 4 git commands to generate.