PR23207, hppa ld SIGSEGVs on invalid object files
[deliverable/binutils-gdb.git] / bfd / cpu-m32c.c
index 729c32d7f8fe26bc696ca80118138c599de19fa9..04d0599a483da449e9a3f1cfb18c8ee914a74295 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD support for the M16C/M32C processors.
-   Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
 #include "bfd.h"
 #include "libbfd.h"
 
+/* Like bfd_default_scan but if the string is just "m32c" then
+   skip the m16c architecture.  */
+
+static bfd_boolean
+m32c_scan (const bfd_arch_info_type * info, const char * string)
+{
+  if (strcmp (string, "m32c") == 0
+      && info->mach == bfd_mach_m16c)
+    return FALSE;
+
+  return bfd_default_scan (info, string);
+}
+
 static const bfd_arch_info_type arch_info_struct[] =
 {
   {
@@ -35,7 +48,8 @@ static const bfd_arch_info_type arch_info_struct[] =
     3,                         /* section align power */
     FALSE,                     /* the default ? */
     bfd_default_compatible,    /* architecture comparison fn */
-    bfd_default_scan,          /* string to architecture convert fn */
+    m32c_scan,                 /* string to architecture convert fn */
+    bfd_arch_default_fill,     /* Default fill.  */
     NULL                       /* next in list */
   },
 };
@@ -52,6 +66,7 @@ const bfd_arch_info_type bfd_m32c_arch =
   4,                           /* Section align power.  */
   TRUE,                                /* The default ?  */
   bfd_default_compatible,      /* Architecture comparison fn.  */
-  bfd_default_scan,            /* String to architecture convert fn.  */
+  m32c_scan,                   /* String to architecture convert fn.  */
+  bfd_arch_default_fill,       /* Default fill.  */
   &arch_info_struct[0],                /* Next in list.  */
 };
This page took 0.024208 seconds and 4 git commands to generate.