Not for the Linux version! *Where* happens this '#include <assert.h>' leading to this clash? There is no such include here.
Looking deeper into this it seems that assert.h is included by Apple's core foundation header. This header is gotten to by sqConfig.h which on the mac under OS-X includes "/Developer/Headers/FlatCarbon/MacTypes.h" which
includes "/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h" which includes "/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h"
which at some point includes assert.h found at "/usr/include/gcc/darwin/2.95.2/g++/../assert.h"
I just wanted (I'm not really sure, see below) to have the most common ANSI-C assert. If your BSD assert (what means BSD here?) is such a thing, OK.
Below is the man page for the BSD (aka FreeBSD being the reference edition for OS-X) assert, but it seems the GNU assert is used here which overrides the platform definition for consistency according to notes on newsgroups from the 1990. The GNU assert.h is defined below (at least the interesting parts).
Thus either the assert used by LargeInteger.c uses the GNU assert, or platform assert, or it needs another name because it's not really assert.
GNU assert.h <partial>
extern void __eprintf () __attribute__ ((noreturn)); /* Defined in libgcc.a */
#define assert(expression) \ ((void) ((expression) ? 0 : __assert (expression, __FILE__, __LINE__)))
#define __assert(expression, file, lineno) \ (__eprintf ("%s:%u: failed assertion `%s'\n", \ file, lineno, "expression"), 0)
libgcc2.c has <partial>
/* This is used by the `assert' macro. */ extern void __eprintf (const char *, const char *, unsigned int, const char *) __attribute__ ((__noreturn__));
void __eprintf (const char *string, const char *expression, unsigned int line, const char *filename) { fprintf (stderr, string, expression, line, filename); fflush (stderr); abort (); }
BSD assert man page
ASSERT(3) System Programmer's Manual ASSERT(3)
NAME assert - expression verification macro
SYNOPSIS #include <assert.h>
assert(expression)
DESCRIPTION The assert() macro tests the given expression and if it is false, the calling process is terminated. A diagnostic message is written to stderr and the abort(3) function is called, effectively terminating the program.
If expression is true, the assert() macro does nothing.
The assert() macro may be removed at compile time with the cc(1) option -DNDEBUG.
DIAGNOSTICS The following diagnostic message is written to stderr if expression is false:
"assertion "%s" failed: file "%s", line %d\n", \ "expression", __FILE__, __LINE__);
SEE ALSO cc(1), abort(3)
STANDARDS The assert() macro conforms to ANSI C3.159-1989 (``ANSI C'').
HISTORY A assert macro appeared in Version 6 AT&T UNIX.