source: trunk/libs/newlib/src/newlib/libc/stdlib/assert.c @ 444

Last change on this file since 444 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 1.8 KB
Line 
1/*
2FUNCTION
3<<assert>>---macro for debugging diagnostics
4
5INDEX
6        assert
7
8SYNOPSIS
9        #include <assert.h>
10        void assert(int <[expression]>);
11
12DESCRIPTION
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.
17
18        When <[expression]> evaluates to false (zero), <<assert>>
19        calls <<abort>>, after first printing a message showing what
20        failed and where:
21
22. Assertion failed: <[expression]>, file <[filename]>, line <[lineno]>, function: <[func]>
23
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.
27
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
32
33. (void(0))
34
35RETURNS
36        <<assert>> does not return a value.
37
38PORTABILITY
39        The <<assert>> macro is required by ANSI, as is the behavior
40        when <<NDEBUG>> is defined.
41
42Supporting OS subroutines required (only if enabled): <<close>>, <<fstat>>,
43<<getpid>>, <<isatty>>, <<kill>>, <<lseek>>, <<read>>, <<sbrk>>, <<write>>.
44*/
45
46#include <assert.h>
47#include <stdlib.h>
48#include <stdio.h>
49
50#ifndef HAVE_ASSERT_FUNC
51/* func can be NULL, in which case no function information is given.  */
52void
53__assert_func (const char *file,
54        int line,
55        const char *func,
56        const char *failedexpr)
57{
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 */
64}
65#endif /* HAVE_ASSERT_FUNC */
66
67void
68__assert (const char *file,
69        int line,
70        const char *failedexpr)
71{
72   __assert_func (file, line, NULL, failedexpr);
73  /* NOTREACHED */
74}
Note: See TracBrowser for help on using the repository browser.