Re: [ARM] Add endless loop to avoid a compiler warning on noreturn functions.

Christophe Lyon <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAKdteOZx+4WxtJVYp+c7C12iXc-3y98+oX9RTX37VTjncr=qDg@mail.gmail.com>
On Tue, 2 Oct 2018 at 00:25, Craig Howland <[email protected]> wrote:
>
> On 10/01/2018 05:27 PM, Christophe Lyon wrote:
> > Hi,
> >
> > While building newlib for ARM, I noticed GCC warnings for _exit() that
> > the compiler thinks they return a value despite being noreturn.
> >
> > Like other targets, this small adds an endless loop to avoid the warning.
> >
> > OK?
> >
> > Christophe
> The proper fix (for both places) is to add noreturn to the _kill() prototype in
> the file.  (Which presumably is true, otherwise _exit() will return.  I did test
> that it fixes the warning.)  (It would not be surprising if it also needed to be
> added to the _kill() source, itself.)

Well, when compiled with ARM_RDI_MONITOR, _kill does seem to return:
#if SEMIHOST_V2
if (_has_ext_exit_extended ())
  return do_AngelSWI (insn, block);
else
#endif
  return do_AngelSWI (insn, (void*)block[0]);

I guess the noreturn should not be added to
newlib/libc/include/sys/signal.h
because it depends on the actual target implementation of _kill?

> Craig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.