"Fossies" - the Fresh Open Source Software Archive

Member "dmd2/src/druntime/src/core/stdc/assert_.d" (20 Nov 2020, 3210 Bytes) of package /linux/misc/dmd.2.094.2.linux.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) D source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    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 
   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 }
   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 }
   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 }
   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 }
   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 }
   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 }
   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 }
   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 }
   99 else version (CRuntime_Bionic)
  100 {
  101     void __assert(const(char)* __file, int __line, const(char)* __msg);
  102 }
  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 }
  110 else version (CRuntime_UClibc)
  111 {
  112     void __assert(const(char)* exp, const(char)* file, uint line, const(char)* func);
  113 }
  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 }