In article <20101023153336.ga...@colwyn.zhadum.org.uk>, Matthias Scheler <t...@netbsd.org> wrote: >On Sat, Oct 23, 2010 at 10:12:51AM -0400, Christos Zoulas wrote: >> Module Name: src >> Committed By: christos >> Date: Sat Oct 23 14:12:51 UTC 2010 >> >> Modified Files: >> src/lib/libc/stdio: local.h >> >> Log Message: >> tell lint to shut up. > >I'm sorry but this whole code is horrible. What is wrong with something >as simple as this? > >Index: local.h >=================================================================== >RCS file: /cvsroot/src/lib/libc/stdio/local.h,v >retrieving revision 1.28 >diff -u -r1.28 local.h >--- local.h 23 Oct 2010 14:12:50 -0000 1.28 >+++ local.h 23 Oct 2010 15:10:27 -0000 >@@ -37,6 +37,8 @@ > #include "wcio.h" > #include "fileext.h" > >+#include <limits.h> >+ > /* > * Information local to this implementation of stdio, > * in particular, macros and private variables. >@@ -117,5 +119,4 @@ > /* > * Detect if the current file position fits in a long int. > */ >-#define _FPOS_OVERFLOW(pos) (/*CONSTCOND*/sizeof(fpos_t) > sizeof(long) && \ >- ((pos) & (~0ULL << ((sizeof(fpos_t) - sizeof(long)) * NBBY))) != 0) >+#define _FPOS_OVERFLOW(pos) ((pos) < LONG_MIN || (pos) > LONG_MAX) > > >It works fine under NetBSD/i386 and builts fine for NetBSD/amd64. >And I would hope that the compiler is clever anough to optimize >the code away on 64bit platforms. > Nothing, change it.
christos