[v2,3/7] readelf: Fix set but not used parameter

Message ID 20230208195226.144143-4-iii@linux.ibm.com
State Committed
Headers
Series Add Memory Sanitizer support |

Commit Message

Ilya Leoshkevich Feb. 8, 2023, 7:52 p.m. UTC
  clang complains:

    readelf.c:12205:72: error: parameter 'desc' set but not used [-Werror,-Wunused-but-set-parameter]
    handle_bit_registers (const Ebl_Register_Location *regloc, const void *desc,
                                                                           ^

Mark Wielaard says:

    It is never really used since as far as I can see we don't have any
    backend with a core register sets where a register doesn't have a
    number of bits which isn't a multiple of 8 (only ia64 has some 1
    bit registers, but those don't seem part of the core register set).

    If we do accidentally try to handle such a register having an abort
    is also not very nice. Lets just warn and return/continue.

https://sourceware.org/bugzilla/show_bug.cgi?id=30084

Co-developed-by: Mark Wielaard <mark@klomp.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 src/readelf.c | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)
  

Comments

Mark Wielaard Feb. 9, 2023, 1:17 p.m. UTC | #1
Hi Ilya,

On Wed, 2023-02-08 at 20:52 +0100, Ilya Leoshkevich wrote:
> clang complains:
> 
>     readelf.c:12205:72: error: parameter 'desc' set but not used [-Werror,-Wunused-but-set-parameter]
>     handle_bit_registers (const Ebl_Register_Location *regloc, const void *desc,
>                                                                            ^
> 
> Mark Wielaard says:
> 
>     It is never really used since as far as I can see we don't have any
>     backend with a core register sets where a register doesn't have a
>     number of bits which isn't a multiple of 8 (only ia64 has some 1
>     bit registers, but those don't seem part of the core register set).
> 
>     If we do accidentally try to handle such a register having an abort
>     is also not very nice. Lets just warn and return/continue.
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=30084
> 
> Co-developed-by: Mark Wielaard <mark@klomp.org>
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>

Thanks, pushed.

Mark
  

Patch

diff --git a/src/readelf.c b/src/readelf.c
index 0bbd708e..5b3319c2 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -12199,24 +12199,17 @@  handle_core_items (Elf *core, const void *desc, size_t descsz,
   return colno;
 }
 
-static unsigned int
-handle_bit_registers (const Ebl_Register_Location *regloc, const void *desc,
-		      unsigned int colno)
-{
-  desc += regloc->offset;
-
-  abort ();			/* XXX */
-  return colno;
-}
-
-
 static unsigned int
 handle_core_register (Ebl *ebl, Elf *core, int maxregname,
 		      const Ebl_Register_Location *regloc, const void *desc,
 		      unsigned int colno)
 {
   if (regloc->bits % 8 != 0)
-    return handle_bit_registers (regloc, desc, colno);
+    {
+      error (0, 0, "Warning: Cannot handle register with %" PRIu8 "bits\n",
+	     regloc->bits);
+      return colno;
+    }
 
   desc += regloc->offset;