Cygwin: mmap: allow remapping part of an existing anonymous mapping
[newlib-cygwin.git] / newlib / libc / stdlib / assert.c
blob46ac92b8c90a9196763d683f7aad0bd26330cc91
1 /*
2 FUNCTION
3 <<assert>>---macro for debugging diagnostics
5 INDEX
6 assert
8 SYNOPSIS
9 #include <assert.h>
10 void assert(int <[expression]>);
12 DESCRIPTION
13 Use this macro to embed debuggging diagnostic statements in
14 your programs. The argument <[expression]> should be an
15 expression which evaluates to true (nonzero) when your program
16 is working as you intended.
18 When <[expression]> evaluates to false (zero), <<assert>>
19 calls <<abort>>, after first printing a message showing what
20 failed and where:
22 . Assertion failed: <[expression]>, file <[filename]>, line <[lineno]>, function: <[func]>
24 If the name of the current function is not known (for example,
25 when using a C89 compiler that does not understand __func__),
26 the function location is omitted.
28 The macro is defined to permit you to turn off all uses of
29 <<assert>> at compile time by defining <<NDEBUG>> as a
30 preprocessor variable. If you do this, the <<assert>> macro
31 expands to
33 . (void(0))
35 RETURNS
36 <<assert>> does not return a value.
38 PORTABILITY
39 The <<assert>> macro is required by ANSI, as is the behavior
40 when <<NDEBUG>> is defined.
42 Supporting OS subroutines required (only if enabled): <<close>>, <<fstat>>,
43 <<getpid>>, <<isatty>>, <<kill>>, <<lseek>>, <<read>>, <<sbrk>>, <<write>>.
46 #include <assert.h>
47 #include <stdlib.h>
48 #include <stdio.h>
50 #ifndef HAVE_ASSERT_FUNC
51 /* func can be NULL, in which case no function information is given. */
52 void
53 __assert_func (const char *file,
54 int line,
55 const char *func,
56 const char *failedexpr)
58 fiprintf(stderr,
59 "assertion \"%s\" failed: file \"%s\", line %d%s%s\n",
60 failedexpr, file, line,
61 func ? ", function: " : "", func ? func : "");
62 abort();
63 /* NOTREACHED */
65 #endif /* HAVE_ASSERT_FUNC */
67 void
68 __assert (const char *file,
69 int line,
70 const char *failedexpr)
72 __assert_func (file, line, NULL, failedexpr);
73 /* NOTREACHED */