With the current implementation of rs6000_dwarf2_reg_to_regnum, if an
unknown DWARF register number is passed, the same number is returned as
the internal GDB number. This assumes that the internal GDB register
numbers match the DWARF register numbers, which is not the case.
Change it to return -1, as documented in gdbarch.sh for the
dwarf2_reg_to_regnum method.
This fixes a failure in gdb.dwarf2/bad-regnum.exp:
(gdb) info addr foo1
-Symbol "foo1" is a variable in $.
-(gdb) FAIL: gdb.dwarf2/bad-regnum.exp: info addr foo1
+Symbol "foo1" is a variable in $bad_register_number.
+(gdb) PASS: gdb.dwarf2/bad-regnum.exp: info addr foo1
I ran the entire testsuite on powerpc64 (gcc203 on the compile farm) and
didn't see any regression.
gdb/ChangeLog:
* rs6000-tdep.c (rs6000_dwarf2_reg_to_regnum): Return -1 for
unknown register numbers.
Change-Id: I585aa07a08f845a46c36bfdb6d3118ea94f8f54d
+2020-10-30 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * rs6000-tdep.c (rs6000_dwarf2_reg_to_regnum): Return -1 for
+
2020-10-30 Tom Tromey <tromey@adacore.com>
* Makefile.in (stamp-init): Depend on config.status.
return tdep->ppc_vrsave_regnum;
case 612:
return tdep->ppc_spefscr_regnum;
- default:
- return num;
}
+
+ /* Unknown DWARF register number. */
+ return -1;
}
/* Translate a .eh_frame register to DWARF register, or adjust a