diff options
-rw-r--r-- | gdb/cris-tdep.c | 4 | ||||
-rw-r--r-- | gdb/gdbarch-selftests.c | 27 | ||||
-rw-r--r-- | gdb/m32c-tdep.c | 8 | ||||
-rw-r--r-- | gdb/m68hc11-tdep.c | 2 | ||||
-rw-r--r-- | gdb/mep-tdep.c | 2 | ||||
-rw-r--r-- | gdb/sh-tdep.c | 89 | ||||
-rw-r--r-- | gdb/v850-tdep.c | 8 |
7 files changed, 69 insertions, 71 deletions
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 549bc06..93dcc92 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -1654,7 +1654,7 @@ cris_special_register_name (struct gdbarch *gdbarch, int regno) return cris_spec_regs[i].name; } /* Special register not applicable to this CRIS version. */ - return NULL; + return ""; } static const char * @@ -1678,7 +1678,7 @@ cris_register_name (struct gdbarch *gdbarch, int regno) else { /* Invalid register. */ - return NULL; + return ""; } } diff --git a/gdb/gdbarch-selftests.c b/gdb/gdbarch-selftests.c index 68d340f..6825441 100644 --- a/gdb/gdbarch-selftests.c +++ b/gdb/gdbarch-selftests.c @@ -122,6 +122,30 @@ register_to_value_test (struct gdbarch *gdbarch) } } +/* Test function gdbarch_register_name. */ + +static void +register_name_test (struct gdbarch *gdbarch) +{ + scoped_mock_context<test_target_ops> mockctx (gdbarch); + + const int num_regs = gdbarch_num_cooked_regs (gdbarch); + for (auto regnum = 0; regnum < num_regs; regnum++) + { + /* If a register is to be hidden from the user then we should get + back an empty string, not nullptr. Every other register should + return a non-empty string. */ + const char *name = gdbarch_register_name (gdbarch, regnum); + + if (run_verbose() && name == nullptr) + debug_printf ("arch: %s, register: %d returned nullptr\n", + gdbarch_bfd_arch_info (gdbarch)->printable_name, + regnum); + + SELF_CHECK (name != nullptr); + } +} + } // namespace selftests void _initialize_gdbarch_selftests (); @@ -130,4 +154,7 @@ _initialize_gdbarch_selftests () { selftests::register_test_foreach_arch ("register_to_value", selftests::register_to_value_test); + + selftests::register_test_foreach_arch ("register_name", + selftests::register_name_test); } diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c index 0765968..2a458f8 100644 --- a/gdb/m32c-tdep.c +++ b/gdb/m32c-tdep.c @@ -757,14 +757,14 @@ mark_save_restore (struct m32c_reg *reg) /* A raw banked general-purpose data register named NAME. NAME should be an identifier, not a string. */ #define RBD(name) \ - (R(NULL, tdep->int16, SIM (name ## _bank0)), \ - R(NULL, tdep->int16, SIM (name ## _bank1)) - 1) + (R("", tdep->int16, SIM (name ## _bank0)), \ + R("", tdep->int16, SIM (name ## _bank1)) - 1) /* A raw banked data address register named NAME. NAME should be an identifier, not a string. */ #define RBA(name) \ - (R(NULL, tdep->data_addr_reg_type, SIM (name ## _bank0)), \ - R(NULL, tdep->data_addr_reg_type, SIM (name ## _bank1)) - 1) + (R("", tdep->data_addr_reg_type, SIM (name ## _bank0)), \ + R("", tdep->data_addr_reg_type, SIM (name ## _bank1)) - 1) /* A cooked register named NAME referring to a raw banked register from the bank selected by the current value of FLG. RAW_PAIR diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c index f22f818..64e82cf 100644 --- a/gdb/m68hc11-tdep.c +++ b/gdb/m68hc11-tdep.c @@ -400,7 +400,7 @@ m68hc11_register_name (struct gdbarch *gdbarch, int reg_nr) /* If we don't know the address of a soft register, pretend it does not exist. */ if (reg_nr > M68HC11_LAST_HARD_REG && soft_regs[reg_nr].name == 0) - return NULL; + return ""; return m68hc11_register_names[reg_nr]; } diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c index 555eb5e..67fc9f0 100644 --- a/gdb/mep-tdep.c +++ b/gdb/mep-tdep.c @@ -1016,7 +1016,7 @@ mep_register_name (struct gdbarch *gdbarch, int regnr) would affect the output of 'info all-registers', which would disturb the test suites. So we leave it invisible. */ else - return NULL; + return ""; } diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index f6b7df5..e4c631b 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -112,19 +112,12 @@ sh_sh_register_name (struct gdbarch *gdbarch, int reg_nr) static const char *register_names[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", - "pc", "pr", "gbr", "vbr", "mach", "macl", "sr", - "", "", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", - "", "", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", + "pc", "pr", "gbr", "vbr", "mach", "macl", "sr" }; - if (reg_nr < 0) - return NULL; + + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -140,13 +133,12 @@ sh_sh3_register_name (struct gdbarch *gdbarch, int reg_nr) "", "", "", "", "", "", "", "", "ssr", "spc", "r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0", - "r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1" - "", "", "", "", "", "", "", "", + "r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1", }; - if (reg_nr < 0) - return NULL; + + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -163,12 +155,10 @@ sh_sh3e_register_name (struct gdbarch *gdbarch, int reg_nr) "ssr", "spc", "r0b0", "r1b0", "r2b0", "r3b0", "r4b0", "r5b0", "r6b0", "r7b0", "r0b1", "r1b1", "r2b1", "r3b1", "r4b1", "r5b1", "r6b1", "r7b1", - "", "", "", "", "", "", "", "", }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -182,15 +172,10 @@ sh_sh2e_register_name (struct gdbarch *gdbarch, int reg_nr) "fpul", "fpscr", "fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7", "fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15", - "", "", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -227,10 +212,9 @@ sh_sh2a_register_name (struct gdbarch *gdbarch, int reg_nr) /* double precision (pseudo) 68 - 75 */ "dr0", "dr2", "dr4", "dr6", "dr8", "dr10", "dr12", "dr14", }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -264,13 +248,11 @@ sh_sh2a_nofpu_register_name (struct gdbarch *gdbarch, int reg_nr) "ibcr", "ibnr", "tbr", /* 67: register bank number, the user visible pseudo register. */ "bank", - /* double precision (pseudo) 68 - 75 */ - "", "", "", "", "", "", "", "", + /* double precision (pseudo) 68 - 75: report blank, see below. */ }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -285,14 +267,11 @@ sh_sh_dsp_register_name (struct gdbarch *gdbarch, int reg_nr) "a0g", "a0", "a1g", "a1", "m0", "m1", "x0", "x1", "y0", "y1", "", "", "", "", "", "mod", "", "", - "rs", "re", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", + "rs", "re", }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -309,13 +288,10 @@ sh_sh3_dsp_register_name (struct gdbarch *gdbarch, int reg_nr) "ssr", "spc", "rs", "re", "", "", "", "", "", "", "r0b", "r1b", "r2b", "r3b", "r4b", "r5b", "r6b", "r7b", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -350,10 +326,9 @@ sh_sh4_register_name (struct gdbarch *gdbarch, int reg_nr) /* FIXME: missing XF */ /* FIXME: missing XD */ }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -383,13 +358,12 @@ sh_sh4_nofpu_register_name (struct gdbarch *gdbarch, int reg_nr) "", /* double precision (pseudo) 68 - 75 -- not for nofpu target */ "", "", "", "", "", "", "", "", - /* vectors (pseudo) 76 - 79 -- not for nofpu target */ - "", "", "", "", + /* vectors (pseudo) 76 - 79 -- not for nofpu target: report blank + below. */ }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } @@ -406,13 +380,10 @@ sh_sh4al_dsp_register_name (struct gdbarch *gdbarch, int reg_nr) "ssr", "spc", "rs", "re", "", "", "", "", "", "", "r0b", "r1b", "r2b", "r3b", "r4b", "r5b", "r6b", "r7b", - "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", }; - if (reg_nr < 0) - return NULL; + gdb_assert (reg_nr >= 0); if (reg_nr >= (sizeof (register_names) / sizeof (*register_names))) - return NULL; + return ""; return register_names[reg_nr]; } diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c index f27c6ab..b7f3d8a 100644 --- a/gdb/v850-tdep.c +++ b/gdb/v850-tdep.c @@ -313,7 +313,7 @@ v850_register_name (struct gdbarch *gdbarch, int regnum) "pc", "fp" }; if (regnum < 0 || regnum > E_NUM_OF_V850_REGS) - return NULL; + return ""; return v850_reg_names[regnum]; } @@ -333,7 +333,7 @@ v850e_register_name (struct gdbarch *gdbarch, int regnum) "pc", "fp" }; if (regnum < 0 || regnum > E_NUM_OF_V850E_REGS) - return NULL; + return ""; return v850e_reg_names[regnum]; } @@ -377,7 +377,7 @@ v850e2_register_name (struct gdbarch *gdbarch, int regnum) "", "", "", "fpspc" }; if (regnum < 0 || regnum >= E_NUM_OF_V850E2_REGS) - return NULL; + return ""; return v850e2_reg_names[regnum]; } @@ -480,7 +480,7 @@ v850e3v5_register_name (struct gdbarch *gdbarch, int regnum) }; if (regnum < 0 || regnum >= E_NUM_OF_V850E3V5_REGS) - return NULL; + return ""; return v850e3v5_reg_names[regnum]; } |