arc: Remove annoying debug message
[deliverable/binutils-gdb.git] / binutils / readelf.c
index a99c521c123541aa99a0857bcbd5c76181e94d7d..9a07158cc398fa77aee764780a5c9213f8cd85ab 100644 (file)
@@ -4238,10 +4238,13 @@ request_dump_bynumber (unsigned int section, dump_type type)
        error (_("Out of memory allocating dump request table.\n"));
       else
        {
-         /* Copy current flag settings.  */
-         memcpy (new_dump_sects, dump_sects, num_dump_sects * sizeof (* dump_sects));
+         if (dump_sects)
+           {
+             /* Copy current flag settings.  */
+             memcpy (new_dump_sects, dump_sects, num_dump_sects * sizeof (* dump_sects));
 
-         free (dump_sects);
+             free (dump_sects);
+           }
 
          dump_sects = new_dump_sects;
          num_dump_sects = section + 1;
@@ -13379,47 +13382,77 @@ display_power_gnu_attribute (unsigned char * p,
                             const unsigned char * const end)
 {
   unsigned int len;
-  int val;
+  unsigned int val;
 
   if (tag == Tag_GNU_Power_ABI_FP)
     {
       val = read_uleb128 (p, &len, end);
       p += len;
       printf ("  Tag_GNU_Power_ABI_FP: ");
+      if (len == 0)
+       {
+         printf (_("<corrupt>\n"));
+         return p;
+       }
 
-      switch (val)
+      if (val > 15)
+       printf ("(%#x), ", val);
+
+      switch (val & 3)
        {
        case 0:
-         printf (_("Hard or soft float\n"));
+         printf (_("unspecified hard/soft float, "));
          break;
        case 1:
-         printf (_("Hard float\n"));
+         printf (_("hard float, "));
          break;
        case 2:
-         printf (_("Soft float\n"));
+         printf (_("soft float, "));
          break;
        case 3:
-         printf (_("Single-precision hard float\n"));
+         printf (_("single-precision hard float, "));
          break;
-       default:
-         printf ("??? (%d)\n", val);
+       }
+
+      switch (val & 0xC)
+       {
+       case 0:
+         printf (_("unspecified long double\n"));
+         break;
+       case 4:
+         printf (_("128-bit IBM long double\n"));
+         break;
+       case 8:
+         printf (_("64-bit long double\n"));
+         break;
+       case 12:
+         printf (_("128-bit IEEE long double\n"));
          break;
        }
       return p;
-   }
+    }
 
   if (tag == Tag_GNU_Power_ABI_Vector)
     {
       val = read_uleb128 (p, &len, end);
       p += len;
       printf ("  Tag_GNU_Power_ABI_Vector: ");
-      switch (val)
+      if (len == 0)
+       {
+         printf (_("<corrupt>\n"));
+         return p;
+       }
+
+      if (val > 3)
+       printf ("(%#x), ", val);
+
+      switch (val & 3)
        {
        case 0:
-         printf (_("Any\n"));
+         printf (_("unspecified\n"));
          break;
        case 1:
-         printf (_("Generic\n"));
+         printf (_("generic\n"));
          break;
        case 2:
          printf ("AltiVec\n");
@@ -13427,39 +13460,39 @@ display_power_gnu_attribute (unsigned char * p,
        case 3:
          printf ("SPE\n");
          break;
-       default:
-         printf ("??? (%d)\n", val);
-         break;
        }
       return p;
-   }
+    }
 
   if (tag == Tag_GNU_Power_ABI_Struct_Return)
     {
-      if (p == end)
+      val = read_uleb128 (p, &len, end);
+      p += len;
+      printf ("  Tag_GNU_Power_ABI_Struct_Return: ");
+      if (len == 0)
        {
-         warn (_("corrupt Tag_GNU_Power_ABI_Struct_Return\n"));
+         printf (_("<corrupt>\n"));
          return p;
        }
 
-      val = read_uleb128 (p, &len, end);
-      p += len;
-      printf ("  Tag_GNU_Power_ABI_Struct_Return: ");
-      switch (val)
-       {
-       case 0:
-         printf (_("Any\n"));
-         break;
-       case 1:
-         printf ("r3/r4\n");
-         break;
-       case 2:
-         printf (_("Memory\n"));
-         break;
-       default:
-         printf ("??? (%d)\n", val);
-         break;
-       }
+      if (val > 2)
+       printf ("(%#x), ", val);
+
+      switch (val & 3)
+       {
+       case 0:
+         printf (_("unspecified\n"));
+         break;
+       case 1:
+         printf ("r3/r4\n");
+         break;
+       case 2:
+         printf (_("memory\n"));
+         break;
+       case 3:
+         printf ("???\n");
+         break;
+       }
       return p;
     }
 
@@ -14718,7 +14751,7 @@ process_mips_specific (FILE * file)
               cmalloc ((sect->sh_size / sizeof (eopt)), sizeof (* iopt));
          if (iopt == NULL)
            {
-             error (_("Out of memory allocatinf space for MIPS options\n"));
+             error (_("Out of memory allocating space for MIPS options\n"));
              return 0;
            }
 
@@ -16352,6 +16385,7 @@ process_arch_specific (FILE * file)
       return process_nds32_specific (file);
       break;
     case EM_PPC:
+    case EM_PPC64:
       return process_power_specific (file);
       break;
     case EM_S390:
This page took 0.070206 seconds and 4 git commands to generate.