]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/compile: add missing entry in bfd_link_callbacks array
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 20 Feb 2025 15:13:38 +0000 (10:13 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 20 Feb 2025 15:17:03 +0000 (10:17 -0500)
clang 19 fails to build gdb with this error:

    /home/simark/src/binutils-gdb/gdb/compile/compile-object-load.c:302:3: error: cannot initialize a member subobject of type 'void (*)(const char *, ...) __attribute__((noreturn))' with an lvalue of type 'void (const char *, ...)'
      302 |   link_callbacks_einfo, /* einfo */
          |   ^~~~~~~~~~~~~~~~~~~~

This illustrates that the bfd_link_callbacks array is missing an entry
for the "fatal" callback, add it.

The fatal field was added very recently, in d26161914 ("PR 32603, more
ld -w misbehaviour").  We're lucky that the new callback was marked with
the noreturn attribute and that clang checks that, otherwise this would
have gone unnoticed.

Change-Id: I68b63d89f2707359e6254da23bdc0776b0e03ba2

gdb/compile/compile-object-load.c

index 8b1556e8f0af08bb8a733facb517abb9d5779ce8..ef77ee305218f58582cd257bf44751b65d11273b 100644 (file)
@@ -299,6 +299,7 @@ static const struct bfd_link_callbacks link_callbacks =
   link_callbacks_reloc_dangerous, /* reloc_dangerous */
   link_callbacks_unattached_reloc, /* unattached_reloc */
   NULL, /* notice */
+  NULL, /* fatal */
   link_callbacks_einfo, /* einfo */
   NULL, /* info */
   NULL, /* minfo */