1 /**
2 * D header file for C99.
3 *
4 * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_assert.h.html, _assert.h)
5 *
6 * License: Distributed under the
7 * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
8 * (See accompanying file LICENSE)
9 * Source: $(DRUNTIMESRC core/stdc/_assert_.d)
10 * Standards: ISO/IEC 9899:1999 (E)
11 */
12
13 /****************************
14 * These are the various functions called by the assert() macro.
15 * They are all noreturn functions, although D doesn't have a specific attribute for that.
16 */
17
18 module core.stdc.assert_;
19
20 version (OSX)
21 version = Darwin;
22 else version (iOS)
23 version = Darwin;
24 else version (TVOS)
25 version = Darwin;
26 else version (WatchOS)
27 version = Darwin;
28
29 extern (C):
30 @trusted:
31 nothrow:
32 @nogc:
33
version(CRuntime_DigitalMars)34 version (CRuntime_DigitalMars)
35 {
36 /***
37 * Assert failure function in the Digital Mars C library.
38 */
39 void _assert(const(void)* exp, const(void)* file, uint line);
40 }
version(CRuntime_Microsoft)41 else version (CRuntime_Microsoft)
42 {
43 /***
44 * Assert failure function in the Microsoft C library.
45 * `_assert` is not in assert.h, but it is in the library.
46 */
47 void _wassert(const(wchar)* exp, const(wchar)* file, uint line);
48 ///
49 void _assert(const(char)* exp, const(char)* file, uint line);
50 }
version(Darwin)51 else version (Darwin)
52 {
53 /***
54 * Assert failure function in the Darwin C library.
55 */
56 void __assert_rtn(const(char)* func, const(char)* file, uint line, const(char)* exp);
57 }
version(FreeBSD)58 else version (FreeBSD)
59 {
60 /***
61 * Assert failure function in the FreeBSD C library.
62 */
63 void __assert(const(char)* exp, const(char)* file, uint line);
64 }
version(NetBSD)65 else version (NetBSD)
66 {
67 /***
68 * Assert failure function in the NetBSD C library.
69 */
70 void __assert(const(char)* file, int line, const(char)* exp);
71 }
version(OpenBSD)72 else version (OpenBSD)
73 {
74 /***
75 * Assert failure function in the OpenBSD C library.
76 */
77 void __assert(const(char)* file, int line, const(char)* exp);
78 ///
79 void __assert2(const(char)* file, int line, const(char)* func, const(char)* exp);
80 }
version(DragonFlyBSD)81 else version (DragonFlyBSD)
82 {
83 /***
84 * Assert failure function in the DragonFlyBSD C library.
85 */
86 void __assert(const(char)* exp, const(char)* file, uint line);
87 }
version(CRuntime_Glibc)88 else version (CRuntime_Glibc)
89 {
90 /***
91 * Assert failure functions in the GLIBC library.
92 */
93 void __assert(const(char)* exp, const(char)* file, uint line);
94 ///
95 void __assert_fail(const(char)* exp, const(char)* file, uint line, const(char)* func);
96 ///
97 void __assert_perror_fail(int errnum, const(char)* file, uint line, const(char)* func);
98 }
version(CRuntime_Bionic)99 else version (CRuntime_Bionic)
100 {
101 void __assert(const(char)* __file, int __line, const(char)* __msg);
102 }
version(CRuntime_Musl)103 else version (CRuntime_Musl)
104 {
105 /***
106 * Assert failure function in the Musl C library.
107 */
108 void __assert_fail(const(char)* exp, const(char)* file, uint line, const(char)* func);
109 }
version(CRuntime_UClibc)110 else version (CRuntime_UClibc)
111 {
112 void __assert(const(char)* exp, const(char)* file, uint line, const(char)* func);
113 }
version(Solaris)114 else version (Solaris)
115 {
116 void __assert_c99(const(char)* exp, const(char)* file, uint line, const(char)* func);
117 }
118 else
119 {
120 static assert(0);
121 }
122