binutils opcodes error messages

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

binutils opcodes error messages

Alan Modra-3
This patch is aimed at making binutils/opcodes files comply with the
GNU coding standard regarding error messages, that is, they should
start with the program name followed by a colon, then a lower case
message.  Accomplished by calling opcodes_error_handler to output the
program name (and final '\n'), rather than calling fprintf.

Files used by the simulator, cris/cris-desc.c and sh64/sh-desc.c will
continue to use fprintf via the fallback opcodes_error_handler define.
I initially wrote a patch with a little scheme to select the right
message output function for opcodes by comparing APPLICATION against
'OPCODES.  That was before discovering that APPLICATION is 'OPCODES
when cgen is invoked to create *-desc.c for the simulator.  :-(

OK to apply?

        * desc-cpu.scm (opcodes_error_handler): Define.
        (@arch@_cgen_rebuild_tables): Use opcodes_error_handler.
        (@arch@_cgen_cpu_open): Likewise.
        * opc-asmdis.scm (@arch@_cgen_parse_operand): Likewise.
        (@arch@_cgen_print_operand): Likewise.
        * opc-ibld.scm (@arch@_cgen_get_int_operand): Likewise.
        (@arch@_cgen_get_vma_operand): Likewise.
        (@arch@_cgen_set_int_operand): Likewise.
        (@arch@_cgen_set_vma_operand): Likewise.
        (@arch@_cgen_insert_operand): Likewise.
        (@arch@_cgen_extract_operand): Likewise.
        * utils.scm: Update emitted copyright dates.

Index: cgen/desc-cpu.scm
===================================================================
RCS file: /cvs/src/src/cgen/desc-cpu.scm,v
retrieving revision 1.35
diff -u -p -r1.35 desc-cpu.scm
--- cgen/desc-cpu.scm 13 Apr 2017 11:58:48 -0000 1.35
+++ cgen/desc-cpu.scm 2 Mar 2018 23:25:26 -0000
@@ -588,6 +588,11 @@ static const CGEN_IBASE @arch@_cgen_insn
 (define (/gen-cpu-open)
   (string-append
    "\
+#ifndef opcodes_error_handler
+#define opcodes_error_handler(...) \\
+  fprintf (stderr, __VA_ARGS__); fputc ('\\n', stderr)
+#endif
+
 static const CGEN_MACH * lookup_mach_via_bfd_name (const CGEN_MACH *, const char *);
 static void build_hw_table      (CGEN_CPU_TABLE *);
 static void build_ifield_table  (CGEN_CPU_TABLE *);
@@ -748,8 +753,11 @@ static void
  {
   if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize)
     {
-      fprintf (stderr, \"@arch@_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\\n\",
-       cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
+      opcodes_error_handler
+ (/* xgettext:c-format */
+ _(\"internal error: @arch@_cgen_rebuild_tables: \"
+   \"conflicting insn-chunk-bitsize values: `%d' vs. `%d'\"),
+ cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
       abort ();
     }
 
@@ -828,8 +836,11 @@ CGEN_CPU_DESC
   endian = va_arg (ap, enum cgen_endian);
   break;
  default :
-  fprintf (stderr, \"@arch@_cgen_cpu_open: unsupported argument `%d'\\n\",
-   arg_type);
+  opcodes_error_handler
+    (/* xgettext:c-format */
+     _(\"internal error: @arch@_cgen_cpu_open: \"
+       \"unsupported argument `%d'\"),
+     arg_type);
   abort (); /* ??? return NULL? */
  }
       arg_type = va_arg (ap, enum cgen_cpu_open_arg);
@@ -844,7 +855,9 @@ CGEN_CPU_DESC
   if (endian == CGEN_ENDIAN_UNKNOWN)
     {
       /* ??? If target has only one, could have a default.  */
-      fprintf (stderr, \"@arch@_cgen_cpu_open: no endianness specified\\n\");
+      opcodes_error_handler
+ (/* xgettext:c-format */
+ _(\"internal error: @arch@_cgen_cpu_open: no endianness specified\"));
       abort ();
     }
 
Index: cgen/opc-asmdis.scm
===================================================================
RCS file: /cvs/src/src/cgen/opc-asmdis.scm,v
retrieving revision 1.8
diff -u -p -r1.8 opc-asmdis.scm
--- cgen/opc-asmdis.scm 7 Sep 2009 22:17:34 -0000 1.8
+++ cgen/opc-asmdis.scm 2 Mar 2018 23:25:26 -0000
@@ -41,7 +41,9 @@ const char *
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while parsing.\\n\"), opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while parsing\"),
+ opindex);
       abort ();
   }
 
@@ -136,9 +138,10 @@ void
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while printing insn.\\n\"),
-       opindex);
-    abort ();
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while printing insn\"),
+ opindex);
+      abort ();
   }
 }\n\n")
 )
Index: cgen/opc-ibld.scm
===================================================================
RCS file: /cvs/src/src/cgen/opc-ibld.scm,v
retrieving revision 1.9
diff -u -p -r1.9 opc-ibld.scm
--- cgen/opc-ibld.scm 7 Sep 2009 22:17:34 -0000 1.9
+++ cgen/opc-ibld.scm 2 Mar 2018 23:25:26 -0000
@@ -30,8 +30,9 @@ int
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while getting int operand.\\n\"),
-       opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while getting int operand\"),
+ opindex);
       abort ();
   }
 
@@ -52,8 +53,9 @@ bfd_vma
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while getting vma operand.\\n\"),
-       opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while getting vma operand\"),
+ opindex);
       abort ();
   }
 
@@ -87,8 +89,9 @@ void
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while setting int operand.\\n\"),
-       opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while setting int operand\"),
+ opindex);
       abort ();
   }
 }
@@ -106,8 +109,9 @@ void
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while setting vma operand.\\n\"),
-       opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while setting vma operand\"),
+ opindex);
       abort ();
   }
 }
@@ -197,8 +201,9 @@ const char *
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while building insn.\\n\"),
-       opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while building insn\"),
+ opindex);
       abort ();
   }
 
@@ -247,8 +252,9 @@ int
 "
     default :
       /* xgettext:c-format */
-      fprintf (stderr, _(\"Unrecognized field %d while decoding insn.\\n\"),
-       opindex);
+      opcodes_error_handler
+ (_(\"internal error: unrecognized field %d while decoding insn\"),
+ opindex);
       abort ();
     }
 
Index: cgen/utils.scm
===================================================================
RCS file: /cvs/src/src/cgen/utils.scm,v
retrieving revision 1.40
diff -u -p -r1.40 utils.scm
--- cgen/utils.scm 7 Apr 2017 22:38:16 -0000 1.40
+++ cgen/utils.scm 2 Mar 2018 23:25:27 -0000
@@ -1310,7 +1310,7 @@
   (cons "\
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 "
  "\
    This file is free software; you can redistribute it and/or modify
@@ -1335,7 +1335,7 @@ Copyright (C) 1996-2017 Free Software Fo
   (cons "\
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 2000-2017 Red Hat, Inc.
+Copyright (C) 2000-2018 Red Hat, Inc.
 "
  "\
 "))

--
Alan Modra
Australia Development Lab, IBM
Reply | Threaded
Open this post in threaded view
|

Re: binutils opcodes error messages

Frank Ch. Eigler
Hi -

> This patch is aimed at making binutils/opcodes files comply with the
> GNU coding standard regarding error messages [...]

lgtm, thanks.

- FChE