| 
									
										
										
										
											2018-11-26 23:22:11 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  | 	assert.h | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-26 23:22:11 +01:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "_ansi.h"
 | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #undef assert
 | 
					
						
							| 
									
										
										
										
											2018-11-26 23:22:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef NDEBUG           /* required by ANSI standard */
 | 
					
						
							|  |  |  | # define assert(__e) ((void) sizeof(__e))
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \
 | 
					
						
							|  |  |  | 						       __ASSERT_FUNC, #__e)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # ifndef __ASSERT_FUNC
 | 
					
						
							|  |  |  |   /* Use g++'s demangled names in C++.  */ | 
					
						
							|  |  |  | #  if defined __cplusplus && defined __GNUC__
 | 
					
						
							|  |  |  | #   define __ASSERT_FUNC __PRETTY_FUNCTION__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* C99 requires the use of __func__.  */ | 
					
						
							|  |  |  | #  elif __STDC_VERSION__ >= 199901L
 | 
					
						
							|  |  |  | #   define __ASSERT_FUNC __func__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* Older versions of gcc don't have __func__ but can use __FUNCTION__.  */ | 
					
						
							|  |  |  | #  elif __GNUC__ >= 2
 | 
					
						
							|  |  |  | #   define __ASSERT_FUNC __FUNCTION__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* failed to detect __func__ support.  */ | 
					
						
							|  |  |  | #  else
 | 
					
						
							|  |  |  | #   define __ASSERT_FUNC ((char *) 0)
 | 
					
						
							|  |  |  | #  endif
 | 
					
						
							|  |  |  | # endif /* !__ASSERT_FUNC */
 | 
					
						
							|  |  |  | #endif /* !NDEBUG */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void _EXFUN(__assert, (const char *, int, const char *) | 
					
						
							|  |  |  | 	    _ATTRIBUTE ((__noreturn__))); | 
					
						
							|  |  |  | void _EXFUN(__assert_func, (const char *, int, const char *, const char *) | 
					
						
							|  |  |  | 	    _ATTRIBUTE ((__noreturn__))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if __STDC_VERSION__ >= 201112L && !defined __cplusplus
 | 
					
						
							|  |  |  | # define static_assert _Static_assert
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | #endif
 |