[PATCH 3/5] libstdthreads/thrd.c: Mark path as unreachable on GCC to resolve warning

Joel Sherrill joel at rtems.org
Mon Mar 21 16:53:28 UTC 2016


On Mon, Mar 21, 2016 at 7:33 AM, Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

>
>
> On 21/03/16 13:31, Joel Sherrill wrote:
>
>>
>>
>> On Mon, Mar 21, 2016 at 1:26 AM, Sebastian Huber <
>> sebastian.huber at embedded-brains.de <mailto:
>> sebastian.huber at embedded-brains.de>> wrote:
>>
>>
>>
>>     On 20/03/16 21:40, Joel Sherrill wrote:
>>
>>         ---
>>           cpukit/libstdthreads/thrd.c | 3 +++
>>           1 file changed, 3 insertions(+)
>>
>>         diff --git a/cpukit/libstdthreads/thrd.c
>>         b/cpukit/libstdthreads/thrd.c
>>         index c2e439f..cc2d20f 100644
>>         --- a/cpukit/libstdthreads/thrd.c
>>         +++ b/cpukit/libstdthreads/thrd.c
>>         @@ -96,6 +96,9 @@ thrd_exit(int res)
>>           {
>>                 pthread_exit((void *)(intptr_t)res);
>>         +       #if defined(__GNUC__)
>>         +               __builtin_unreachable();
>>         +       #endif
>>           }
>>             int
>>
>>
>>     We should fix the pthread_exit() declaration instead, e.g. FreeBSD
>>     has this:
>>
>>     void          pthread_exit(void *) __dead2;
>>
>> Does that map to gcc noreturn? And does newlib have that?
>>
>
> Yes, or Noreturn if you use the appropriate C++ version. Needs
> <sys/cdefs.h>.
>
>
That moves the noreturn warning.

/data/home/joel/test-gcc/install-head/sparc-rtems4.12/include/pthread.h: In
function 'pthread_exit':
../../../../../../rtems/c/src/../../cpukit/posix/src/pthreadexit.c:78:1:
warning: 'noreturn' function does return
 }
 ^

Other than marking pthread_exit's return as unreachable, do you have
another suggestion?

--joel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160321/07cdf213/attachment-0002.html>


More information about the devel mailing list