26 lines
		
	
	
		
			653 B
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			653 B
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /*	assert.h	*/
 | |
| 
 | |
| #ifndef NDEBUG	/* 8086 must do without training wheels. */
 | |
| #define NDEBUG	(_WORD_SIZE == 2)
 | |
| #endif
 | |
| 
 | |
| #if !NDEBUG
 | |
| 
 | |
| #define INIT_ASSERT	static char *assert_file= __FILE__;
 | |
| 
 | |
| void bad_assertion(char *file, int line, char *what);
 | |
| void bad_compare(char *file, int line, int lhs, char *what, int rhs);
 | |
| 
 | |
| #define assert(x)	(!(x) ? bad_assertion(assert_file, __LINE__, #x) \
 | |
| 								: (void) 0)
 | |
| #define compare(a,t,b)	(!((a) t (b)) ? bad_compare(assert_file, __LINE__, \
 | |
| 				(a), #a " " #t " " #b, (b)) : (void) 0)
 | |
| #else /* NDEBUG */
 | |
| 
 | |
| #define INIT_ASSERT	/* nothing */
 | |
| 
 | |
| #define assert(x)	(void)0
 | |
| #define compare(a,t,b)	(void)0
 | |
| 
 | |
| #endif /* NDEBUG */
 | 
