Re: FPU Bounds [Was: Re: openssh4.0 upgrade]

看板DFBSD_submit作者時間21年前 (2005/03/24 03:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/9 (看更多)
:On Wed, Mar 23, 2005 at 05:07:54PM +0100, Joerg Sonnenberger wrote: :> On Wed, Mar 23, 2005 at 01:52:24AM -0800, Matthew Dillon wrote: :> > In anycase, it looks like GCC just breaks when you use the internal :> > va_arg with a 'char' type. It is supposed to promote the argument :> > to an int and then cast it to a char. Instead it generates, well, :> > what you see. :> :> Actually this is a bug in the code using va_arg. There is even a warning :> flag for GCC to catch implicit int promotions for variadic functions, :> because the variadic function has to use int. : :And the flag is on, the compiler does warn about this. One more reason to get :our kernel -Werror ready :) : :../../bus/ppbus/ppb_msq.c: In function `ppb_MS_init_msq': :../../bus/ppbus/ppb_msq.c:222: warning: `char' is promoted to `int' when passed through `...' :../../bus/ppbus/ppb_msq.c:222: warning: (so you should pass `int' not `char' to `va_arg') :../../bus/ppbus/ppb_msq.c:222: note: if this code is reached, the program will abort : :Joerg Joerg, could you add a patch to the gcc-3 build to turn that warning into a compile-time error? I consider this a bug in gcc. When the varargs functions were originally created they were documented as properly dealing with internal compiler argument promotions... and they did. Apparently, now, they don't, and some half-brain decided it should be a warning rather then the terminal error that it really ought to be. -Matt Matthew Dillon <dillon@backplane.com>
文章代碼(AID): #12GSGu00 (DFBSD_submit)
討論串 (同標題文章)
文章代碼(AID): #12GSGu00 (DFBSD_submit)