|
From: | Eric Blake |
Subject: | Re: [PATCH] test-raise: use _Noreturn |
Date: | Wed, 05 Oct 2011 16:50:34 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.22) Gecko/20110906 Fedora/3.1.14-1.fc14 Lightning/1.0b3pre Mnenhy/0.8.4 Thunderbird/3.1.14 |
On 10/05/2011 04:46 PM, Eric Blake wrote:
-static void +static _Noreturn void handler (int sig) { exit (0);While this patch removes a gcc warning of type "function might be possible candidate for attribute 'noreturn'" on some platform, it introduces a gcc warning of type "'noreturn' function does return" on other platforms (namely on those where<stdlib.h> does not declare exit() as a non- returning function).Shouldn't that imply that gnulib's <stdlib.h> replacement should be taught to guarantee that exit() is declared noreturn even if the system's header is missing that information?
Or, avoiding a change to gnulib's <stdlib.h>, why not use this? static _Noreturn void handler (int sig) { while (1) exit (0); }That is, the while(1) construct should be sufficient for gcc to detect an infloop condition which is another way to satisfy handler's noreturn marking, even if exit() itself was not marked noreturn.
-- Eric Blake address@hidden +1-801-349-2682 Libvirt virtualization library http://libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |