Silence compiler warning on
Mark Kettenis
mark.kettenis@xs4all.nl
Tue Apr 18 09:40:00 GMT 2006
Right now, when I compile BFD on HP-UX 10.20, I get the following
warning (wich is fatal because of -Werror):
/export/jive/kettenis/src/gdb/bfd/bfd.c: In function `_bfd_abort':
/export/jive/kettenis/src/gdb/bfd/bfd.c:801: warning: `noreturn' function does return
The problem here is that the system headers don't declare _exit() with
__attribute__((noreturn). Previously we didn't get this warning
because _bfd_abort() called xexit(), which was declared with
__attribute__((noreturn)) (and xexit.c was compiled without -Werror).
The attached patch is an attempt to fix this. Ok?
Index: ChangeLog
from Mark Kettenis <kettenis@jive.nl>
* bfd.c (_bfd_abort): Provide prototype for _exit with
ATTRIBUTE_NORETURN.
Index: bfd.c
===================================================================
RCS file: /cvs/src/src/bfd/bfd.c,v
retrieving revision 1.81
diff -u -p -r1.81 bfd.c
--- bfd.c 16 Mar 2006 12:20:15 -0000 1.81
+++ bfd.c 18 Apr 2006 08:58:52 -0000
@@ -783,6 +783,9 @@ bfd_assert (const char *file, int line)
void
_bfd_abort (const char *file, int line, const char *fn)
{
+ /* Make sure the compiler knows _exit doesn't return. */
+ extern void _exit (int) ATTRIBUTE_NORETURN;
+
if (fn != NULL)
(*_bfd_error_handler)
(_("BFD %s internal error, aborting at %s line %d in %s\n"),
More information about the Binutils
mailing list