aboutsummaryrefslogtreecommitdiff
path: root/sim/igen
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2022-12-24 01:20:14 -0500
committerMike Frysinger <vapier@gentoo.org>2022-12-24 21:30:33 -0500
commit5d3539bd6bbd9cbd0fa1e09d93632ff08822f1c2 (patch)
tree96881a892922b7b8f029005d55217532a8e1d182 /sim/igen
parentbba234157f38ec3fec26d035f8bba31b76f41860 (diff)
downloadgdb-5d3539bd6bbd9cbd0fa1e09d93632ff08822f1c2.zip
gdb-5d3539bd6bbd9cbd0fa1e09d93632ff08822f1c2.tar.gz
gdb-5d3539bd6bbd9cbd0fa1e09d93632ff08822f1c2.tar.bz2
sim: igen: constify itable data structures
These are const data arrays of strings and numbers. We don't want or need them to be writable, so mark them all const.
Diffstat (limited to 'sim/igen')
-rw-r--r--sim/igen/gen-itable.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/sim/igen/gen-itable.c b/sim/igen/gen-itable.c
index 21c13c9..05bcf46 100644
--- a/sim/igen/gen-itable.c
+++ b/sim/igen/gen-itable.c
@@ -114,7 +114,8 @@ static void
itable_print_names (lf *file, const filter *set, const char *name)
{
const char *elem;
- lf_printf (file, "const char *%sitable_%s_names[nr_%sitable_%ss + 1] = {\n",
+ lf_printf (file,
+ "const char * const %sitable_%s_names[nr_%sitable_%ss + 1] = {\n",
options.module.itable.prefix.l, name,
options.module.itable.prefix.l, name);
lf_indent (file, +2);
@@ -143,19 +144,19 @@ gen_itable_h (lf *file, const insn_table *isa)
/* output an enumeration type for each flag */
itable_print_enum (file, isa->flags, "flag");
- lf_printf (file, "extern const char *%sitable_flag_names[];\n",
+ lf_printf (file, "extern const char * const %sitable_flag_names[];\n",
options.module.itable.prefix.l);
lf_printf (file, "\n");
/* output an enumeration of all the possible options */
itable_print_enum (file, isa->options, "option");
- lf_printf (file, "extern const char *%sitable_option_names[];\n",
+ lf_printf (file, "extern const char * const %sitable_option_names[];\n",
options.module.itable.prefix.l);
lf_printf (file, "\n");
/* output an enumeration of all the processor models */
itable_print_enum (file, isa->model->processors, "processor");
- lf_printf (file, "extern const char *%sitable_processor_names[];\n",
+ lf_printf (file, "extern const char * const %sitable_processor_names[];\n",
options.module.itable.prefix.l);
lf_printf (file, "\n");
@@ -163,26 +164,27 @@ gen_itable_h (lf *file, const insn_table *isa)
lf_printf (file, "typedef struct _%sitable_instruction_info {\n",
options.module.itable.prefix.l);
lf_printf (file, " %sitable_index nr;\n", options.module.itable.prefix.l);
- lf_printf (file, " char *format;\n");
- lf_printf (file, " char *form;\n");
- lf_printf (file, " char *flags;\n");
+ lf_printf (file, " const char *format;\n");
+ lf_printf (file, " const char *form;\n");
+ lf_printf (file, " const char *flags;\n");
/* nr_itable_* may be zero, so we add 1 to avoid an
illegal zero-sized array. */
- lf_printf (file, " char flag[nr_%sitable_flags + 1];\n",
+ lf_printf (file, " const char flag[nr_%sitable_flags + 1];\n",
options.module.itable.prefix.l);
- lf_printf (file, " char *options;\n");
- lf_printf (file, " char option[nr_%sitable_options + 1];\n",
+ lf_printf (file, " const char *options;\n");
+ lf_printf (file, " const char option[nr_%sitable_options + 1];\n",
options.module.itable.prefix.l);
- lf_printf (file, " char *processors;\n");
- lf_printf (file, " char processor[nr_%sitable_processors + 1];\n",
+ lf_printf (file, " const char *processors;\n");
+ lf_printf (file, " const char processor[nr_%sitable_processors + 1];\n",
options.module.itable.prefix.l);
- lf_printf (file, " char *name;\n");
- lf_printf (file, " char *file;\n");
+ lf_printf (file, " const char *name;\n");
+ lf_printf (file, " const char *file;\n");
lf_printf (file, " int line_nr;\n");
lf_printf (file, "} %sitable_info;\n", options.module.itable.prefix.l);
lf_printf (file, "\n");
- lf_printf (file, "extern %sitable_info %sitable[nr_%sitable_entries];\n",
+ lf_printf (file,
+ "extern const %sitable_info %sitable[nr_%sitable_entries];\n",
options.module.itable.prefix.l, options.module.itable.prefix.l,
options.module.itable.prefix.l);
if (strlen (options.module.itable.prefix.l) > 0)
@@ -293,7 +295,7 @@ gen_itable_c (lf *file, const insn_table *isa)
itable_print_names (file, isa->model->processors, "processor");
/* output the table that contains the actual instruction info */
- lf_printf (file, "%sitable_info %sitable[nr_%sitable_entries] = {\n",
+ lf_printf (file, "const %sitable_info %sitable[nr_%sitable_entries] = {\n",
options.module.itable.prefix.l,
options.module.itable.prefix.l, options.module.itable.prefix.l);
insn_table_traverse_insn (file, isa, itable_c_insn, NULL);