[Bug libdw/30077] Duplicate definition of typedef struct debuginfod_client in libdwfl

2023-02-05 Thread mark at klomp dot org via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=30077

--- Comment #4 from Mark Wielaard  ---
(In reply to Sam James from comment #2)
> These issues sometimes appear with -flto -Wlto-type-mismatch but not clear
> that's the case here.

Yes, but typedefs don't define new types, just alias types.
Also it looks like this is actually allowed (at least in C11, maybe some
compilers didn't accept it before?):

- a typedef name may be redefined to denote the same type as it currently does,
provided that type is not a variably modified type

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug libdw/30077] Duplicate definition of typedef struct debuginfod_client in libdwfl

2023-02-05 Thread mark at klomp dot org via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=30077

--- Comment #5 from Mark Wielaard  ---
(In reply to David Edelsohn from comment #3)
> The struct is needed by libdwfl.h to prototype
> 
> extern debuginfod_client *dwfl_get_debuginfod_client (Dwfl *dwfl);
> 
> but that function is defined in debuginfod-client.c protected by
> 
> #ifdef ENABLE_LIBDEBUGINFOD
> 
> It already is protected where it is referenced by an existing macro.  The
> problem is the header logic doesn't match the logic in the file that uses
> that prototype.
> 
> So, again, it would seem better to include the struct from
> debuginfod-client.h directly instead of adding more macros to protect the
> headers and types that already are protected.  Something like:

The public headers are independent and can be used with or without the other
being available. And the function must be defined with or without libdebuginfod
support available or installed.

You cannot use the same guards in the public headers and the implementation
sources because they are independent.

It might be helpful to know in which configuration you are having this issue.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug libdw/30077] Duplicate definition of typedef struct debuginfod_client in libdwfl

2023-02-05 Thread dje at sourceware dot org via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=30077

--- Comment #6 from David Edelsohn  ---
The error is reported if one configures and builds with Clang.

Also, yes, this is a C11 feature, but libdwfl/Makefile.in explicitly invokes
the compiler with -std=gnu99 (AM_CFLAGS).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug general/30084] New: readelf.c:handle_bit_registers() sets parameter desc without using it.

2023-02-05 Thread dje at sourceware dot org via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=30084

Bug ID: 30084
   Summary: readelf.c:handle_bit_registers() sets parameter desc
without using it.
   Product: elfutils
   Version: unspecified
Status: NEW
  Severity: normal
  Priority: P2
 Component: general
  Assignee: unassigned at sourceware dot org
  Reporter: dje at sourceware dot org
CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

static unsigned int
handle_bit_registers (const Ebl_Register_Location *regloc, const void *desc,
unsigned int colno)
{
  desc += regloc->offset;
...

The local parameter desc is updated but not used.  The function explicitly
calls abort(), so the implementation is not complete and not intended to be
used.  The function should add

(void) desc;

or something to create an artificial use and avoid a spurious warning.

-- 
You are receiving this mail because:
You are on the CC list for the bug.