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. Kind regards -- Matthias Scheler http://zhadum.org.uk/