122 lines
3.1 KiB
D
122 lines
3.1 KiB
D
/**
|
|
* D header file for C99.
|
|
*
|
|
* $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_assert.h.html, _assert.h)
|
|
*
|
|
* License: Distributed under the
|
|
* $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0).
|
|
* (See accompanying file LICENSE)
|
|
* Source: $(DRUNTIMESRC core/stdc/_assert_.d)
|
|
* Standards: ISO/IEC 9899:1999 (E)
|
|
*/
|
|
|
|
/****************************
|
|
* These are the various functions called by the assert() macro.
|
|
* They are all noreturn functions, although D doesn't have a specific attribute for that.
|
|
*/
|
|
|
|
module core.stdc.assert_;
|
|
|
|
version (OSX)
|
|
version = Darwin;
|
|
else version (iOS)
|
|
version = Darwin;
|
|
else version (TVOS)
|
|
version = Darwin;
|
|
else version (WatchOS)
|
|
version = Darwin;
|
|
|
|
extern (C):
|
|
@trusted:
|
|
nothrow:
|
|
@nogc:
|
|
|
|
version (CRuntime_DigitalMars)
|
|
{
|
|
/***
|
|
* Assert failure function in the Digital Mars C library.
|
|
*/
|
|
void _assert(const(void)* exp, const(void)* file, uint line);
|
|
}
|
|
else version (CRuntime_Microsoft)
|
|
{
|
|
/***
|
|
* Assert failure function in the Microsoft C library.
|
|
* `_assert` is not in assert.h, but it is in the library.
|
|
*/
|
|
void _wassert(const(wchar)* exp, const(wchar)* file, uint line);
|
|
///
|
|
void _assert(const(char)* exp, const(char)* file, uint line);
|
|
}
|
|
else version (Darwin)
|
|
{
|
|
/***
|
|
* Assert failure function in the Darwin C library.
|
|
*/
|
|
void __assert_rtn(const(char)* func, const(char)* file, uint line, const(char)* exp);
|
|
}
|
|
else version (FreeBSD)
|
|
{
|
|
/***
|
|
* Assert failure function in the FreeBSD C library.
|
|
*/
|
|
void __assert(const(char)* exp, const(char)* file, uint line);
|
|
}
|
|
else version (NetBSD)
|
|
{
|
|
/***
|
|
* Assert failure function in the NetBSD C library.
|
|
*/
|
|
void __assert(const(char)* file, int line, const(char)* exp);
|
|
}
|
|
else version (OpenBSD)
|
|
{
|
|
/***
|
|
* Assert failure function in the OpenBSD C library.
|
|
*/
|
|
void __assert(const(char)* file, int line, const(char)* exp);
|
|
///
|
|
void __assert2(const(char)* file, int line, const(char)* func, const(char)* exp);
|
|
}
|
|
else version (DragonFlyBSD)
|
|
{
|
|
/***
|
|
* Assert failure function in the DragonFlyBSD C library.
|
|
*/
|
|
void __assert(const(char)* exp, const(char)* file, uint line);
|
|
}
|
|
else version (CRuntime_Glibc)
|
|
{
|
|
/***
|
|
* Assert failure functions in the GLIBC library.
|
|
*/
|
|
void __assert(const(char)* exp, const(char)* file, uint line);
|
|
///
|
|
void __assert_fail(const(char)* exp, const(char)* file, uint line, const(char)* func);
|
|
///
|
|
void __assert_perror_fail(int errnum, const(char)* file, uint line, const(char)* func);
|
|
}
|
|
else version (CRuntime_Bionic)
|
|
{
|
|
void __assert(const(char)* __file, int __line, const(char)* __msg);
|
|
}
|
|
else version (CRuntime_Musl)
|
|
{
|
|
/***
|
|
* Assert failure function in the Musl C library.
|
|
*/
|
|
void __assert_fail(const(char)* exp, const(char)* file, uint line, const(char)* func);
|
|
}
|
|
else version (CRuntime_UClibc)
|
|
{
|
|
void __assert(const(char)* exp, const(char)* file, uint line, const(char)* func);
|
|
}
|
|
else version (Solaris)
|
|
{
|
|
void __assert_c99(const(char)* exp, const(char)* file, uint line, const(char)* func);
|
|
}
|
|
else
|
|
{
|
|
static assert(0);
|
|
}
|