9f3f659581
Changes since 3.1.1: Declarations of intptr_t and uintptr_t The standard library declares the intptr_t and uintptr_t types incorrectly. They are declared as int * and unsigned int *, but should be integral types (large enough to hold a pointer) instead. (Reported by David Sanderson, 25 Sep 2004. Fixed in development standard.h.) Mode help Splint crashes when run with -help weak or another mode flag. (Reported by Clive Bach, 27 July 2004. Fixed in CVS 28 July 2004.) Missing va_copy The standard library is missing va_copy. (Reported by Roland Illig, 21 May 2004. Fixed in CVS, 21 May 2004.) Shifting in pre-processor expressions Splint will report an internal error for a preprocessor expression that shifts a negative value. This should produce a warning message instead. (Reported by Dirk Herrmann, 10 Nov 2003. Fixed in CVS, 18 May 2004, but no warning message added yet.) gmtime and localtime The return type is incorrectly specified as /*@null@*/ in the standard library. gmtime and localtime are guaranteed to return non-null values. (Reported by Terry Colligan, 30 Oct 2003. Fixed in CVS, 2 Nov 2003.) Redefining __func__ Splint will report an internal bug if built in special definitions like __func__ are redefined. (Reported by Terry Colligan, 28 Oct 2003. Fixed in CVS, 28 Oct 2003.) Pragma Line Numbers Splint does not count #pragma ... lines in the line number. (Reported by Scott Frazer, 27 Oct 2003. Fixed in CVS, 27 Oct 2003.) Files Unclosed in Win32 Options that involve writing messages to files do not work in Win32. The check that all files are closed was somehow copied to a location it shouldn't be (llmain:830). (Fixed in CVS 18 Sept 2003.) Multi-dimensional Arrays Splint does not interpret declarations of multidimensional arrays correctly. A declaration like int a[][10] is misinterpreted as int a[10][]. (Reported by Bill Leahy, 15 Sept 2003. Fixed in CVS 15 Sept 2003.) && and || guards Splint does not correctly interpret guards for non-boolean expressions in && and || clauses (e.g., if (s && t)). (Reported by Andrew Bishop. Fixed in CVS 13 August 2003.) scanf %x Splint interprets %x in a scanf format string as an int *, but it should be an unsigned int *. (Reported by Andrew Bishop. Fixed in CVS 13 August 2003.) +matchanyintegral and unsignedintegrals When +matchanyintegral is set, splint should allow any int type to match an aribtrary unsigned integral. (Reported by John Makecki. Fixed in CVS 18 July 2003.) Shadow updates When a variable declaration is shadowed, the sRef_updateSref function will find the inner reference when there is an alias to the outer reference. (Reported by John Makecki. Fixed in CVS 18 July 2003.) Internal assertion fails for unconventional bounds An internal assertion will fail for strange array indexes like, i["]<i;++i){--i;}"]. (Reported by Xose Vazquez Perez. Fixed in CVS 12 July 2003.) Assignments with global structs Splint does not correctly update state when the rhs of an assignment is a struct with global scope. (Reported by Steve Brooke. Fixed in CVS, 10 July 2003.) Defining __STDC__ Splint should define __STDC__. See http://bugs.debian.org/cgi-bin/ bugreport.cgi?bug=171437&msg=7 for details. (Reported by Vincent Lefevre. Fixed in CVS, 10 July 2003) Missing signal.h definitions The posix library is missing some definitions from signal.h. (Reported by Jerry James. Fixed in CVS, 13 June 2003) Pre-processing ISO8859-1 characters Splint does not process ISO8859-1 characters correctly since it is building on a pre-ISO8859-1 version of gcc's pre-processor, and character \377 is indistinguishable from EOF. (Reported by Kai Hofmann. Fixed in CVS, 6 June 2003) Printing lltok Splint prints -> tokens in specifications incorrectly as ".". Reported and fixed by Psanzani. (Fixed in CVS, 6 June 2003)
15 lines
601 B
Text
15 lines
601 B
Text
$NetBSD: patch-aa,v 1.3 2009/03/03 08:58:23 rillig Exp $
|
|
|
|
Some systems don't have <stdbool.h>.
|
|
|
|
--- src/Headers/basic.h.orig 2003-11-02 21:55:03.000000000 +0100
|
|
+++ src/Headers/basic.h 2009-03-03 09:43:05.000000000 +0100
|
|
@@ -26,7 +26,7 @@
|
|
# include <stdlib.h>
|
|
# include <stdio.h>
|
|
|
|
-# if !defined (WIN32) && !(defined (OS2) && defined (__IBMC__))
|
|
+# if !defined (WIN32) && !(defined (OS2) && defined (__IBMC__)) && !(defined(__GNUC__) && (__GNUC__ == 2)) && !(defined(__sun) && !(__STDC_VERSION__ >= 199901L))
|
|
/* Microsoft VC++ still doesn't support ISO C99... */
|
|
# include <stdbool.h>
|
|
# endif
|