gdb: update now gdbarch_register_name doesn't return nullptr
authorAndrew Burgess <aburgess@redhat.com>
Wed, 31 Aug 2022 14:42:43 +0000 (15:42 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Sun, 2 Oct 2022 13:21:25 +0000 (14:21 +0100)
After the previous few commit, gdbarch_register_name no longer returns
nullptr.  This commit audits all the calls to gdbarch_register_name
and removes any code that checks the result against nullptr.

There should be no visible change after this commit.

16 files changed:
gdb/alpha-tdep.c
gdb/arch-utils.c
gdb/csky-tdep.c
gdb/h8300-tdep.c
gdb/infcmd.c
gdb/m68hc11-tdep.c
gdb/mi/mi-main.c
gdb/mips-tdep.c
gdb/nds32-tdep.c
gdb/regcache.c
gdb/reggroups.c
gdb/riscv-tdep.c
gdb/sh-tdep.c
gdb/tui/tui-regs.c
gdb/user-regs.c
gdb/valops.c

index d30e0c369ccdf590c32c1c617ab105248ae0d801..9b3dbca8cdefbfce5df38b94c8c6c879929684c6 100644 (file)
@@ -140,8 +140,7 @@ alpha_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
 {
   /* Filter out any registers eliminated, but whose regnum is 
      reserved for backward compatibility, e.g. the vfp.  */
-  if (gdbarch_register_name (gdbarch, regnum) == NULL
-      || *gdbarch_register_name (gdbarch, regnum) == '\0')
+  if (*gdbarch_register_name (gdbarch, regnum) == '\0')
     return 0;
 
   if (group == all_reggroup)
index 5943965bd75a41d84a2276fae7b06fdef1c881fc..77269425ddcddc95da3762a3785f3a39a99a55e7 100644 (file)
@@ -76,8 +76,7 @@ legacy_register_sim_regno (struct gdbarch *gdbarch, int regnum)
      suspected that some GDB/SIM combinations may rely on this
      behaviour.  The default should be one2one_register_sim_regno
      (below).  */
-  if (gdbarch_register_name (gdbarch, regnum) != NULL
-      && gdbarch_register_name (gdbarch, regnum)[0] != '\0')
+  if (gdbarch_register_name (gdbarch, regnum)[0] != '\0')
     return regnum;
   else
     return LEGACY_SIM_REGNO_IGNORE;
index 17820aab6eb037dcdfc57accc7f9c8988a164cf4..cc8812003c8083f5665a2bc8fb3fc0203ec1cb28 100644 (file)
@@ -2353,8 +2353,7 @@ csky_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
 {
   int raw_p;
 
-  if (gdbarch_register_name (gdbarch, regnum) == NULL
-      || gdbarch_register_name (gdbarch, regnum)[0] == '\0')
+  if (gdbarch_register_name (gdbarch, regnum)[0] == '\0')
     return 0;
 
   if (reggroup == all_reggroup)
index ed401ee45f85a2a47bed2f971add831a6bc3dc3b..8f8461fe61d5247909b07d7ea8522a6026634e04 100644 (file)
@@ -996,7 +996,7 @@ h8300_print_register (struct gdbarch *gdbarch, struct ui_file *file,
   LONGEST rval;
   const char *name = gdbarch_register_name (gdbarch, regno);
 
-  if (!name || !*name)
+  if (*name == '\0')
     return;
 
   rval = get_frame_register_signed (frame, regno);
index b788f454432ce731abb082c059dbeb101b3c75e9..decd61111b792e4876223fd10ade861217cf0468 100644 (file)
@@ -2224,8 +2224,7 @@ default_print_registers_info (struct gdbarch *gdbarch,
 
       /* If the register name is empty, it is undefined for this
         processor, so don't display anything.  */
-      if (gdbarch_register_name (gdbarch, i) == NULL
-         || *(gdbarch_register_name (gdbarch, i)) == '\0')
+      if (*(gdbarch_register_name (gdbarch, i)) == '\0')
        continue;
 
       default_print_one_register_info (file,
index f5e33e7a0f144fef116e7071d215370f6b05f7de..343ecf5c2624ee4e505371a9be74eaa6e7d32ad1 100644 (file)
@@ -1090,7 +1090,7 @@ m68hc11_print_registers_info (struct gdbarch *gdbarch, struct ui_file *file,
     {
       const char *name = gdbarch_register_name (gdbarch, regno);
 
-      if (!name || !*name)
+      if (*name == '\0')
        return;
 
       gdb_printf (file, "%-10s ", name);
index b758f398e2a1fb39227e044836a4d0e0bef4cdbd..80b5cd9bf90104ae12f6721cf9d68080cd918db4 100644 (file)
@@ -880,8 +880,7 @@ mi_cmd_data_list_register_names (const char *command, char **argv, int argc)
           regnum < numregs;
           regnum++)
        {
-         if (gdbarch_register_name (gdbarch, regnum) == NULL
-             || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+         if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
            uiout->field_string (NULL, "");
          else
            uiout->field_string (NULL, gdbarch_register_name (gdbarch, regnum));
@@ -895,8 +894,7 @@ mi_cmd_data_list_register_names (const char *command, char **argv, int argc)
       if (regnum < 0 || regnum >= numregs)
        error (_("bad register number"));
 
-      if (gdbarch_register_name (gdbarch, regnum) == NULL
-         || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+      if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
        uiout->field_string (NULL, "");
       else
        uiout->field_string (NULL, gdbarch_register_name (gdbarch, regnum));
@@ -940,8 +938,7 @@ mi_cmd_data_list_changed_registers (const char *command, char **argv, int argc)
           regnum < numregs;
           regnum++)
        {
-         if (gdbarch_register_name (gdbarch, regnum) == NULL
-             || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+         if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
            continue;
 
          if (register_changed_p (regnum, prev_regs.get (),
@@ -957,7 +954,6 @@ mi_cmd_data_list_changed_registers (const char *command, char **argv, int argc)
 
       if (regnum >= 0
          && regnum < numregs
-         && gdbarch_register_name (gdbarch, regnum) != NULL
          && *gdbarch_register_name (gdbarch, regnum) != '\000')
        {
          if (register_changed_p (regnum, prev_regs.get (),
@@ -1067,8 +1063,7 @@ mi_cmd_data_list_register_values (const char *command, char **argv, int argc)
           regnum < numregs;
           regnum++)
        {
-         if (gdbarch_register_name (gdbarch, regnum) == NULL
-             || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+         if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
            continue;
 
          output_register (frame, regnum, format, skip_unavailable);
@@ -1082,7 +1077,6 @@ mi_cmd_data_list_register_values (const char *command, char **argv, int argc)
 
       if (regnum >= 0
          && regnum < numregs
-         && gdbarch_register_name (gdbarch, regnum) != NULL
          && *gdbarch_register_name (gdbarch, regnum) != '\000')
        output_register (frame, regnum, format, skip_unavailable);
       else
@@ -1163,8 +1157,7 @@ mi_cmd_data_write_register_values (const char *command, char **argv, int argc)
       int regnum = atoi (argv[i]);
 
       if (regnum >= 0 && regnum < numregs
-         && gdbarch_register_name (gdbarch, regnum)
-         && *gdbarch_register_name (gdbarch, regnum))
+         && *gdbarch_register_name (gdbarch, regnum) != '\0')
        {
          LONGEST value;
 
@@ -2632,8 +2625,7 @@ mi_cmd_trace_frame_collected (const char *command, char **argv, int argc)
 
     for (regnum = 0; regnum < numregs; regnum++)
       {
-       if (gdbarch_register_name (gdbarch, regnum) == NULL
-           || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+       if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
          continue;
 
        output_register (frame, regnum, registers_format, 1);
index 14f5c3e4e72d9681edd25b0a661b62a478dffccf..c5bd73ce7804c541f7b71764733f2d1911bc25b6 100644 (file)
@@ -712,8 +712,7 @@ mips_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
   /* FIXME: cagney/2003-04-13: Can't yet use gdbarch_num_regs
      (gdbarch), as not all architectures are multi-arch.  */
   raw_p = rawnum < gdbarch_num_regs (gdbarch);
-  if (gdbarch_register_name (gdbarch, regnum) == NULL
-      || gdbarch_register_name (gdbarch, regnum)[0] == '\0')
+  if (gdbarch_register_name (gdbarch, regnum)[0] == '\0')
     return 0;
   if (reggroup == float_reggroup)
     return float_p && pseudo;
@@ -7952,10 +7951,7 @@ mips_register_sim_regno (struct gdbarch *gdbarch, int regnum)
      decide if it is valid.  Should instead define a standard sim/gdb
      register numbering scheme.  */
   if (gdbarch_register_name (gdbarch,
-                            gdbarch_num_regs (gdbarch) + regnum) != NULL
-      && gdbarch_register_name (gdbarch,
-                               gdbarch_num_regs (gdbarch)
-                               + regnum)[0] != '\0')
+                            gdbarch_num_regs (gdbarch) + regnum)[0] != '\0')
     return regnum;
   else
     return LEGACY_SIM_REGNO_IGNORE;
index 77eb5da863e3e2c6946220bb9c23ff11eeecd4f8..962584a3683b5a442e1ada054348df7f9504a01f 100644 (file)
@@ -2030,8 +2030,7 @@ nds32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
        {
          const char *regname = gdbarch_register_name (gdbarch, j);
 
-         if (regname != NULL
-             && strcmp (regname, nds32_register_aliases[i].name) == 0)
+         if (strcmp (regname, nds32_register_aliases[i].name) == 0)
            {
              regnum = j;
              break;
index b0e92dd00774eceec6dfae011b8d87cb0e2400ce..279bf2258a9ed76d6b432947c4b4a40bf83f6fac 100644 (file)
@@ -1392,7 +1392,6 @@ regcache::debug_print_register (const char *func,  int regno)
 
   gdb_printf (gdb_stdlog, "%s ", func);
   if (regno >= 0 && regno < gdbarch_num_regs (gdbarch)
-      && gdbarch_register_name (gdbarch, regno) != NULL
       && gdbarch_register_name (gdbarch, regno)[0] != '\0')
     gdb_printf (gdb_stdlog, "(%s)",
                gdbarch_register_name (gdbarch, regno));
@@ -1453,9 +1452,7 @@ register_dump::dump (ui_file *file)
        {
          const char *p = gdbarch_register_name (m_gdbarch, regnum);
 
-         if (p == NULL)
-           p = "";
-         else if (p[0] == '\0')
+         if (p[0] == '\0')
            p = "''";
          gdb_printf (file, " %-10s", p);
        }
index b81031b42acafac3e0cc681314f7b3eeff9a7016..8e4af303c5457df665ca3acb298a4b425fbd9431 100644 (file)
@@ -146,8 +146,7 @@ default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
   int float_p;
   int raw_p;
 
-  if (gdbarch_register_name (gdbarch, regnum) == NULL
-      || *gdbarch_register_name (gdbarch, regnum) == '\0')
+  if (*gdbarch_register_name (gdbarch, regnum) == '\0')
     return 0;
   if (group == all_reggroup)
     return 1;
index 7bddf535804d9627bd08bf51a41f335686eb4926..47d8f9e601bce6010ec8230a4f9d2e39523852ab 100644 (file)
@@ -1352,8 +1352,7 @@ riscv_register_reggroup_p (struct gdbarch  *gdbarch, int regnum,
 
   /* Used by 'info registers' and 'info registers <groupname>'.  */
 
-  if (gdbarch_register_name (gdbarch, regnum) == NULL
-      || gdbarch_register_name (gdbarch, regnum)[0] == '\0')
+  if (gdbarch_register_name (gdbarch, regnum)[0] == '\0')
     return 0;
 
   if (regnum > RISCV_LAST_REGNUM && regnum < gdbarch_num_regs (gdbarch))
@@ -1478,8 +1477,7 @@ riscv_print_registers_info (struct gdbarch *gdbarch,
   if (regnum != -1)
     {
       /* Print one specified register.  */
-      if (gdbarch_register_name (gdbarch, regnum) == NULL
-         || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+      if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
        error (_("Not a valid register for the current processor type"));
       riscv_print_one_register_info (gdbarch, file, frame, regnum);
     }
@@ -1499,8 +1497,7 @@ riscv_print_registers_info (struct gdbarch *gdbarch,
            continue;
 
          /* Registers with no name are not valid on this ISA.  */
-         if (gdbarch_register_name (gdbarch, regnum) == NULL
-             || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
+         if (*(gdbarch_register_name (gdbarch, regnum)) == '\0')
            continue;
 
          /* Is the register in the group we're interested in?  */
index 90f8aa4185cd6e3e2d489142bc1daaf75712fd24..b08e37117ae345467707b830926c54bfde615979 100644 (file)
@@ -1452,8 +1452,7 @@ static int
 sh_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
                        const struct reggroup *reggroup)
 {
-  if (gdbarch_register_name (gdbarch, regnum) == NULL
-      || *gdbarch_register_name (gdbarch, regnum) == '\0')
+  if (*gdbarch_register_name (gdbarch, regnum) == '\0')
     return 0;
 
   if (reggroup == float_reggroup
index 5106a3b967077f589e12344e4a0aba6a36bbca6a..830df5427c7fbcb6f502b1d67cdacf1331810f69 100644 (file)
@@ -231,7 +231,7 @@ tui_data_window::show_register_group (const reggroup *group,
       /* If the register name is empty, it is undefined for this
         processor, so don't display anything.  */
       name = gdbarch_register_name (gdbarch, regnum);
-      if (name == 0 || *name == '\0')
+      if (*name == '\0')
        continue;
 
       nr_regs++;
@@ -253,7 +253,7 @@ tui_data_window::show_register_group (const reggroup *group,
       /* If the register name is empty, it is undefined for this
         processor, so don't display anything.  */
       name = gdbarch_register_name (gdbarch, regnum);
-      if (name == 0 || *name == '\0')
+      if (*name == '\0')
        continue;
 
       data_item_win = &m_regs_content[pos];
index 05bb04ef2ed6f1ef0e3e73de88c92ad59685d6a6..3030d952cf10e2d823a98c15f77e2ef99c02a663 100644 (file)
@@ -139,18 +139,14 @@ user_reg_map_name_to_regnum (struct gdbarch *gdbarch, const char *name,
   /* Search register name space first - always let an architecture
      specific register override the user registers.  */
   {
-    int i;
     int maxregs = gdbarch_num_cooked_regs (gdbarch);
 
-    for (i = 0; i < maxregs; i++)
+    for (int i = 0; i < maxregs; i++)
       {
        const char *regname = gdbarch_register_name (gdbarch, i);
 
-       if (regname != NULL && len == strlen (regname)
-           && strncmp (regname, name, len) == 0)
-         {
-           return i;
-         }
+       if (len == strlen (regname) && strncmp (regname, name, len) == 0)
+         return i;
       }
   }
 
index b4866d089ac8f074525d50a3dbe71b3c51ff3884..0a215d699a1266d3ffe8869cadd1dd23d233cf80 100644 (file)
@@ -1417,7 +1417,7 @@ address_of_variable (struct symbol *var, const struct block *b)
 
        regname = gdbarch_register_name (get_frame_arch (frame),
                                         VALUE_REGNUM (val));
-       gdb_assert (regname && *regname);
+       gdb_assert (regname != nullptr && *regname != '\0');
 
        error (_("Address requested for identifier "
                 "\"%s\" which is in register $%s"),