Hi Ilya,

On Mon, 2023-02-06 at 23:25 +0100, Ilya Leoshkevich via Elfutils-devel
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,
>                                                                            ^
> 
> Apparently handle_bit_registers() is unimplemented, but one line is
> still written for the future. Silence the warning by casting desc to
> void.

Someone else also noticed this and filed a bug report, could you add
the bug URL to the commit message?

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

Also can we just remove this whole function?

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. Something like
the attached?

Thanks,

Mark
diff --git a/src/readelf.c b/src/readelf.c
index 51b0e8b9..50bfd1c8 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -12201,24 +12201,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;
 

Reply via email to