RISC-V: Fix missing initialization of riscv_csr_extra structs
authorSimon Cook <simon.cook@embecosm.com>
Wed, 27 May 2020 16:34:58 +0000 (17:34 +0100)
committerJim Wilson <jimw@sifive.com>
Wed, 27 May 2020 23:38:37 +0000 (16:38 -0700)
The next pointer of struct riscv_csr_extra was not always initilized
to NULL or a valid pointer, causing the assembler to attempt to read
through an uninitialized pointer on startup.

gas/ChangeLog:

        * config/tc-riscv.c (riscv_init_csr_hash): NULL initilize next
        pointer when creating struct riscv_csr_extra.

gas/ChangeLog
gas/config/tc-riscv.c

index 97d877625073501c9bef68973ca04c46e3207aec..0d1565f00d356389c4e2ce6155a5e48f2092184e 100644 (file)
@@ -1,3 +1,8 @@
+2020-05-27  Simon Cook  <simon.cook@embecosm.com>
+
+        * config/tc-riscv.c (riscv_init_csr_hash): NULL initilize next
+        pointer when creating struct riscv_csr_extra.
+
 2020-05-26  H.J. Lu  <hongjiu.lu@intel.com>
 
        * testsuite/gas/i386/align-branch-9.d: Updated for PECOFF.
index 2a03a440b195db4e1a7dc83ffbae9936ff8f9a3d..da94b5b1cfba1dbe96a17a92e7034b7c3896a912 100644 (file)
@@ -695,6 +695,7 @@ riscv_init_csr_hash (const char *name,
   entry->address = address;
   entry->define_version = define_version;
   entry->abort_version = abort_version;
+  entry->next = NULL;
 
   /* If the CSR hasn't been inserted in the hash table, then insert it.
      Otherwise, attach the extra information to the entry which is already