Fix illegal memory access parsing a corrupt MACH-O format file.
[deliverable/binutils-gdb.git] / bfd / cpu-s390.c
index 1cd3af1a7e70f0a3610732e6febe39c54233a328..e71779c0554b8835fde9063656cecf9ecdfd9976 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the s390 processor.
 /* BFD support for the s390 processor.
-   Copyright 2000, 2001, 2002, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2000-2021 Free Software Foundation, Inc.
    Contributed by Carl B. Pedersen and Martin Schwidefsky.
 
    This file is part of BFD, the Binary File Descriptor library.
    Contributed by Carl B. Pedersen and Martin Schwidefsky.
 
    This file is part of BFD, the Binary File Descriptor library.
 #include "bfd.h"
 #include "libbfd.h"
 
 #include "bfd.h"
 #include "libbfd.h"
 
-const bfd_arch_info_type bfd_s390_64_arch =
-{
-    64,        /* bits in a word */
-    64,        /* bits in an address */
-    8, /* bits in a byte */
-    bfd_arch_s390,
-    bfd_mach_s390_64,
-    "s390",
-    "s390:64-bit",
-    3, /* section alignment power */
-#if BFD_DEFAULT_TARGET_SIZE == 64
-    TRUE, /* the default */
-#else
-    FALSE, /* the default */
-#endif
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    NULL
-};
+#define N(bits, number, print, is_default, next)       \
+  {                                                    \
+    bits,             /* Bits in a word.  */           \
+    bits,             /* Bits in an address.  */       \
+    8,                /* Bits in a byte.  */           \
+    bfd_arch_s390,                                     \
+    number,                                            \
+    "s390",                                            \
+    print,                                             \
+    3,                /* Section alignment power */    \
+    is_default,                                                \
+    bfd_default_compatible,                            \
+    bfd_default_scan,                                  \
+    bfd_arch_default_fill,                             \
+    next,                                              \
+    0 /* Maximum offset of a reloc from the start of an insn.  */ \
+  }
 
 
-const bfd_arch_info_type bfd_s390_arch =
-{
-    32,        /* bits in a word */
-    32,        /* bits in an address */
-    8, /* bits in a byte */
-    bfd_arch_s390,
-    bfd_mach_s390_31,
-    "s390",
-    "s390:31-bit",
-    3, /* section alignment power */
 #if BFD_DEFAULT_TARGET_SIZE == 64
 #if BFD_DEFAULT_TARGET_SIZE == 64
-    FALSE, /* the default */
+static const bfd_arch_info_type bfd_s390_31_arch =
+  N (32, bfd_mach_s390_31, "s390:31-bit", false, NULL);
+const bfd_arch_info_type bfd_s390_arch =
+  N (64, bfd_mach_s390_64, "s390:64-bit", true, &bfd_s390_31_arch);
 #else
 #else
-    TRUE, /* the default */
+static const bfd_arch_info_type bfd_s390_64_arch =
+  N (64, bfd_mach_s390_64, "s390:64-bit", false, NULL);
+const bfd_arch_info_type bfd_s390_arch =
+  N (32, bfd_mach_s390_31, "s390:31-bit", true, &bfd_s390_64_arch);
 #endif
 #endif
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_s390_64_arch
-};
This page took 0.02528 seconds and 4 git commands to generate.