| 1234567891011121314151617181920212223242526272829303132333435 | 
							- /*
 
-  * assert.h
 
-  *
 
-  * Define a common interface for assertions that builds for both the PAL
 
-  * and libOS.
 
-  *
 
-  */
 
- #ifndef ASSERT_H
 
- #define ASSERT_H
 
- #include <stdnoreturn.h>
 
- #define COMPILE_TIME_ASSERT(pred) switch(0){case 0:case (pred):;}
 
- /* All environments should implement warn, which prints a non-optional debug
 
-  * message. All environments should also implement __abort, which
 
-  * terminates the process.
 
-  */
 
- void warn (const char *format, ...) __attribute__((format(printf, 1, 2)));
 
- noreturn void __abort(void);
 
- # define assert(test)                                                   \
 
-     ({                                                                  \
 
-         long _val = (long)(test);                                       \
 
-         (!(_val))                                                       \
 
-             ? ({                                                        \
 
-                     warn("assert failed " __FILE__ ":%d %s (value:%lx)\n", \
 
-                          __LINE__, #test, _val);                        \
 
-                     __abort(); })                                       \
 
-             : (void)0;                                                  \
 
-     })
 
- #endif
 
 
  |