From: Erik Faye-Lund Date: Thu, 09 Jun 2011 21:13:56 GMT Subject: Re: [PATCH 1/2] Remove noreturn function pointers in usage.c Message-ID: In-Reply-To: <20110609063145.GC15448@one.firstfloor.org> On Thu, Jun 9, 2011 at 8:31 AM, Andi Kleen wrote: > On Thu, Jun 09, 2011 at 01:52:24AM -0400, Jeff King wrote: >> On Thu, Jun 09, 2011 at 06:59:15AM +0200, Andi Kleen wrote: >> >> > >  - Potential impact to people who do not use Gcc 4.6 with profile feedback >> > >    is not explained away well, except for "Doesn't seem to make any >> > >    difference." >> > >> > I merely went by "there are no new warnings" (I assume that's the main >> > motivation) >> >> On your compiler and settings, perhaps. With your patch I get: >> >>   usage.c: In function ‘die’: >>   usage.c:70:1: error: ‘noreturn’ function does return [-Werror] > > Ok.  Hmm, all I can say it compiled here. > > Ok then we have to remove it. I didn't really like Junio's approach > to only do it for a single file because that would break with LTO / link > time optimization which requires declarations to match between > translation units. Junio's approach didn't do it for a single file, it disabled the NORETURN mechanism all together, by having a Makefile-switch. > BTW 4.6.2 or so will have the problem fixed. If it's only in 4.6 through 4.6.2, then we probably don't even need a Makefile-switch for junio's approach at all; just checking the GCC version should be reliable enough, no?