]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/genconstants.c
Correct a function pre/postcondition [PR102403].
[thirdparty/gcc.git] / gcc / genconstants.c
index b16a88bc3ea606a6a0c0bb0cff0ab7593eeccffe..b18b57c2c39f9ad0124a39e0708c3ea6e11c93ff 100644 (file)
@@ -2,8 +2,7 @@
    a series of #define statements, one for each constant named in
    a (define_constants ...) pattern.
 
-   Copyright (C) 1987, 1991, 1995, 1998, 1999, 2000, 2001, 2003, 2004,
-   2007  Free Software Foundation, Inc.
+   Copyright (C) 1987-2021 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -29,6 +28,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "system.h"
 #include "coretypes.h"
 #include "errors.h"
+#include "statistics.h"
+#include "vec.h"
 #include "read-md.h"
 
 /* Called via traverse_md_constants; emit a #define for
@@ -69,15 +70,19 @@ print_enum_type (void **slot, void *info ATTRIBUTE_UNUSED)
   upcase_string (value_name);
   printf ("#define %s %d\n", value_name, def->num_values);
 
+  /* Declare the array that is generated by genenum.  */
+  printf ("extern const char *const %s_strings[];\n", def->name);
+
   return 1;
 }
 
 int
-main (int argc, char **argv)
+main (int argc, const char **argv)
 {
   progname = "genconstants";
 
-  if (!read_md_files (argc, argv, NULL, NULL))
+  noop_reader reader;
+  if (!reader.read_md_files (argc, argv, NULL))
     return (FATAL_EXIT_CODE);
 
   /* Initializing the MD reader has the side effect of loading up
@@ -88,8 +93,8 @@ main (int argc, char **argv)
   puts ("#ifndef GCC_INSN_CONSTANTS_H");
   puts ("#define GCC_INSN_CONSTANTS_H\n");
 
-  traverse_md_constants (print_md_constant, 0);
-  traverse_enum_types (print_enum_type, 0);
+  reader.traverse_md_constants (print_md_constant, 0);
+  reader.traverse_enum_types (print_enum_type, 0);
 
   puts ("\n#endif /* GCC_INSN_CONSTANTS_H */");