From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1726) id 3BE183858D38; Sun, 2 Oct 2022 16:28:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3BE183858D38 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1664728086; bh=36X3JoBDzBwYQ/ADuvGJDE9h0o1E/z99Vke+J1kSUYY=; h=From:To:Subject:Date:From; b=GqOGDez5SZtU0SZVxtGiUNesbOheNBRZ6xQxRdsbnSBZYtCUSgQTvkpnDpAo2r13R bV9J0qKQCo2CcSoa2BmnwKYR9pxgLQ6lkezlcDl32cK4CjY9xojPEhQhhKq27PpQr4 KuUfwavngU92tSg5pbzUZ8ZssyoT26VyjohJwynI= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Andrew Burgess To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb/csky: remove nullptr return from csky_pseudo_register_name X-Act-Checkin: binutils-gdb X-Git-Author: Andrew Burgess X-Git-Refname: refs/heads/master X-Git-Oldrev: 7df4240040277fb752fd010f5a947cf2d32bc3a5 X-Git-Newrev: 7ac20d65a8d0c9cdb329d49e8d9e58e38c39fec4 Message-Id: <20221002162806.3BE183858D38@sourceware.org> Date: Sun, 2 Oct 2022 16:28:06 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D7ac20d65a8d0= c9cdb329d49e8d9e58e38c39fec4 commit 7ac20d65a8d0c9cdb329d49e8d9e58e38c39fec4 Author: Andrew Burgess Date: Thu Sep 1 15:39:59 2022 +0100 gdb/csky: remove nullptr return from csky_pseudo_register_name =20 Building on the previous commits, in this commit I remove two instances of 'return NULL' from csky_pseudo_register_name, and replace them with a return of the empty string. =20 These two are particularly interesting, and worth pulling into their own commit, because these returns of NULL appear to be depended on within other parts of the csky code. =20 In csky-linux-tdep.c in the register collect/supply code, GDB checks for the register name being nullptr in order to decide if a target supports a particular feature or not. I've updated the code to check for the empty string. =20 I have no way of testing this change. Diff: --- gdb/csky-linux-tdep.c | 14 +++++++------- gdb/csky-tdep.c | 17 ++++------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/gdb/csky-linux-tdep.c b/gdb/csky-linux-tdep.c index 7bcc1712180..ea306cded09 100644 --- a/gdb/csky-linux-tdep.c +++ b/gdb/csky-linux-tdep.c @@ -155,7 +155,7 @@ csky_supply_fregset (const struct regset *regset, /* Supply vr0~vr15. */ for (i =3D 0; i < 16; i ++) { - if (gdbarch_register_name (gdbarch, (CSKY_VR0_REGNUM + i))) + if (*gdbarch_register_name (gdbarch, (CSKY_VR0_REGNUM + i)) !=3D '\0') { offset =3D 16 * i; regcache->raw_supply (CSKY_VR0_REGNUM + i, fregs + offset); @@ -164,7 +164,7 @@ csky_supply_fregset (const struct regset *regset, /* Supply fr0~fr15. */ for (i =3D 0; i < 16; i ++) { - if (gdbarch_register_name (gdbarch, (CSKY_FR0_REGNUM + i))) + if (*gdbarch_register_name (gdbarch, (CSKY_FR0_REGNUM + i)) !=3D '\0') { offset =3D 16 * i; regcache->raw_supply (CSKY_FR0_REGNUM + i, fregs + offset); @@ -173,7 +173,7 @@ csky_supply_fregset (const struct regset *regset, /* Supply fr16~fr31. */ for (i =3D 0; i < 16; i ++) { - if (gdbarch_register_name (gdbarch, (CSKY_FR16_REGNUM + i))) + if (*gdbarch_register_name (gdbarch, (CSKY_FR16_REGNUM + i)) !=3D '\0') { offset =3D (16 * 16) + (8 * i); regcache->raw_supply (CSKY_FR16_REGNUM + i, fregs + offset); @@ -182,7 +182,7 @@ csky_supply_fregset (const struct regset *regset, /* Supply fcr, fesr, fid. */ for (i =3D 0; i < 3; i ++) { - if (gdbarch_register_name (gdbarch, fcr_regno[i])) + if (*gdbarch_register_name (gdbarch, fcr_regno[i]) !=3D '\0') { offset =3D (16 * 16) + (16 * 8) + (4 * i); regcache->raw_supply (fcr_regno[i], fregs + offset); @@ -245,7 +245,7 @@ csky_collect_fregset (const struct regset *regset, /* Supply vr0~vr15. */ for (i =3D 0; i < 16; i ++) { - if (gdbarch_register_name (gdbarch, (CSKY_VR0_REGNUM + i))) + if (*gdbarch_register_name (gdbarch, (CSKY_VR0_REGNUM + i)) !=3D '\0') { offset =3D 16 * i; regcache ->raw_collect (CSKY_VR0_REGNUM + i, fregs + offset); @@ -254,7 +254,7 @@ csky_collect_fregset (const struct regset *regset, /* Supply fr16~fr31. */ for (i =3D 0; i < 16; i ++) { - if (gdbarch_register_name (gdbarch, (CSKY_FR16_REGNUM + i))) + if (*gdbarch_register_name (gdbarch, (CSKY_FR16_REGNUM + i)) !=3D '\0') { offset =3D (16 * 16) + (8 * i); regcache ->raw_collect (CSKY_FR16_REGNUM + i, fregs + offset); @@ -263,7 +263,7 @@ csky_collect_fregset (const struct regset *regset, /* Supply fcr, fesr, fid. */ for (i =3D 0; i < 3; i ++) { - if (gdbarch_register_name (gdbarch, fcr_regno[i])) + if (*gdbarch_register_name (gdbarch, fcr_regno[i]) !=3D '\0') { offset =3D (16 * 16) + (16 * 8) + (4 * i); regcache ->raw_collect (fcr_regno[i], fregs + offset); diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c index cbf12c18063..17820aab6eb 100644 --- a/gdb/csky-tdep.c +++ b/gdb/csky-tdep.c @@ -660,21 +660,12 @@ static const char * const csky_register_names[] =3D static const char * csky_register_name (struct gdbarch *gdbarch, int reg_nr) { - int num_regs =3D gdbarch_num_regs (gdbarch); - int num_pseudo_regs =3D gdbarch_num_pseudo_regs (gdbarch); - - if ((reg_nr >=3D num_regs) && (reg_nr < (num_regs + num_pseudo_regs))) + if (reg_nr >=3D gdbarch_num_regs (gdbarch)) return csky_pseudo_register_name (gdbarch, reg_nr); =20 if (tdesc_has_registers (gdbarch_target_desc (gdbarch))) return tdesc_register_name (gdbarch, reg_nr); =20 - if (reg_nr < 0) - return NULL; - - if (reg_nr >=3D gdbarch_num_regs (gdbarch)) - return NULL; - return csky_register_names[reg_nr]; } =20 @@ -2543,15 +2534,15 @@ csky_pseudo_register_name (struct gdbarch *gdbarch,= int regno) if (regno < tdep->fv_pseudo_registers_count) { if ((regno < 64) && ((regno % 4) >=3D 2) && !tdep->has_vr0) - return NULL; + return ""; else if ((regno >=3D 64) && ((regno % 4) >=3D 2)) - return NULL; + return ""; else return fv_pseudo_names[regno]; } } =20 - return NULL; + return ""; } =20 /* Read for csky pseudo regs. */