[ARM] Make _kill() a noreturn function.
AngelSWI_Reason_ReportException does not return accoring to the ARM documentation, so it is valid to mark _kill() as noreturn. This way, the compiler does not warn about _exit() returning a value despite being noreturn. 2018-10-01 Christophe Lyon <christophe.lyon@linaro.org> * libgloss/arm/_exit.c (_exit): Declare _kill() as noreturn. * libgloss/arm/_exit.c (_kill): Likewise. Remove the return statements. * newlib/libc/sys/arm/syscalls.c (_kill): Likewise..
This commit is contained in:
parent
f53ce01125
commit
8a7536e91d
@ -1,6 +1,6 @@
|
|||||||
#include <_ansi.h>
|
#include <_ansi.h>
|
||||||
|
|
||||||
int _kill (int, int);
|
int _kill (int, int) __attribute__((__noreturn__));
|
||||||
void _exit (int);
|
void _exit (int);
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include "swi.h"
|
#include "swi.h"
|
||||||
|
|
||||||
int _kill (int, int);
|
int _kill (int, int) __attribute__((__noreturn__));
|
||||||
|
|
||||||
int
|
int
|
||||||
_kill (int pid, int sig)
|
_kill (int pid, int sig)
|
||||||
@ -41,12 +41,14 @@ _kill (int pid, int sig)
|
|||||||
|
|
||||||
#if SEMIHOST_V2
|
#if SEMIHOST_V2
|
||||||
if (_has_ext_exit_extended ())
|
if (_has_ext_exit_extended ())
|
||||||
return do_AngelSWI (insn, block);
|
do_AngelSWI (insn, block);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
return do_AngelSWI (insn, (void*)block[0]);
|
do_AngelSWI (insn, (void*)block[0]);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
asm ("swi %a0" :: "i" (SWI_Exit));
|
asm ("swi %a0" :: "i" (SWI_Exit));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
__builtin_unreachable();
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ int _stat (const char *, struct stat *);
|
|||||||
int _fstat (int, struct stat *);
|
int _fstat (int, struct stat *);
|
||||||
void * _sbrk (ptrdiff_t);
|
void * _sbrk (ptrdiff_t);
|
||||||
pid_t _getpid (void);
|
pid_t _getpid (void);
|
||||||
int _kill (int, int);
|
int _kill (int, int) __attribute__((__noreturn__));
|
||||||
void _exit (int);
|
void _exit (int);
|
||||||
int _close (int);
|
int _close (int);
|
||||||
int _swiclose (int);
|
int _swiclose (int);
|
||||||
@ -432,15 +432,18 @@ _kill (int pid, int sig)
|
|||||||
/* Note: The pid argument is thrown away. */
|
/* Note: The pid argument is thrown away. */
|
||||||
switch (sig) {
|
switch (sig) {
|
||||||
case SIGABRT:
|
case SIGABRT:
|
||||||
return do_AngelSWI (AngelSWI_Reason_ReportException,
|
do_AngelSWI (AngelSWI_Reason_ReportException,
|
||||||
(void *) ADP_Stopped_RunTimeError);
|
(void *) ADP_Stopped_RunTimeError);
|
||||||
|
__builtin_unreachable();
|
||||||
default:
|
default:
|
||||||
return do_AngelSWI (AngelSWI_Reason_ReportException,
|
do_AngelSWI (AngelSWI_Reason_ReportException,
|
||||||
(void *) ADP_Stopped_ApplicationExit);
|
(void *) ADP_Stopped_ApplicationExit);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
asm ("swi %a0" :: "i" (SWI_Exit));
|
asm ("swi %a0" :: "i" (SWI_Exit));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
__builtin_unreachable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user