summaryrefslogtreecommitdiff
path: root/opcodes/z8kgen.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-01-08 11:42:36 +1030
committerAlan Modra <amodra@gmail.com>2020-01-08 21:51:32 +1030
commit030a2e78acf66c5c12e073ec3887a167da7a7195 (patch)
treea96dc0b6fda94acff746f176f72c21aa2beed27d /opcodes/z8kgen.c
parent4c6ee6465acc58f0f86c44668c4e862901186239 (diff)
downloadbinutils-gdb-030a2e78acf66c5c12e073ec3887a167da7a7195.tar.gz
ubsan: z8k: index 10 out of bounds for type 'unsigned int const[10]'
The fix is the additional ARRAY_SIZE test, the rest just tidies variable types rather than adding a cast to avoid warnings. opcodes/ * z8k-dis.c: Include libiberty.h (instr_data_s): Make max_fetched unsigned. (z8k_lookup_instr): Make nibl_index and tabl_index unsigned. Don't exceed byte_info bounds. (output_instr): Make num_bytes unsigned. (unpack_instr): Likewise for nibl_count and loop. * z8kgen.c (gas <opcode_entry_type>): Make noperands, length and idx unsigned. * z8k-opc.h: Regenerate. gas/ * config/tc-z8k.c (md_begin): Make idx unsigned. (get_specific): Likewise for this_index.
Diffstat (limited to 'opcodes/z8kgen.c')
-rw-r--r--opcodes/z8kgen.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/opcodes/z8kgen.c b/opcodes/z8kgen.c
index a1b74ca4f37..b72fcffa357 100644
--- a/opcodes/z8kgen.c
+++ b/opcodes/z8kgen.c
@@ -1290,9 +1290,9 @@ gas (void)
printf (" void (*func) (void);\n");
printf (" unsigned int arg_info[4];\n");
printf (" unsigned int byte_info[%d];\n", BYTE_INFO_LEN);
- printf (" int noperands;\n");
- printf (" int length;\n");
- printf (" int idx;\n");
+ printf (" unsigned int noperands;\n");
+ printf (" unsigned int length;\n");
+ printf (" unsigned int idx;\n");
printf ("} opcode_entry_type;\n\n");
printf ("#ifdef DEFINE_TABLE\n");
printf ("const opcode_entry_type z8k_table[] = {\n");