Wolfgang Thallerfix newlibec13cc97 years agoHistory
74 lines · 1.8 KB · C
RawDownload
/*FUNCTION<<assert>>---macro for debugging diagnostics INDEX	assert SYNOPSIS	#include <assert.h>	void assert(int <[expression]>); DESCRIPTION	Use this macro to embed debuggging diagnostic statements in	your programs.  The argument <[expression]> should be an	expression which evaluates to true (nonzero) when your program	is working as you intended. 	When <[expression]> evaluates to false (zero), <<assert>>	calls <<abort>>, after first printing a message showing what	failed and where: . Assertion failed: <[expression]>, file <[filename]>, line <[lineno]>, function: <[func]> 	If the name of the current function is not known (for example,	when using a C89 compiler that does not understand __func__),	the function location is omitted. 	The macro is defined to permit you to turn off all uses of	<<assert>> at compile time by defining <<NDEBUG>> as a	preprocessor variable.   If you do this, the <<assert>> macro	expands to . (void(0)) RETURNS	<<assert>> does not return a value. PORTABILITY	The <<assert>> macro is required by ANSI, as is the behavior	when <<NDEBUG>> is defined. Supporting OS subroutines required (only if enabled): <<close>>, <<fstat>>,<<getpid>>, <<isatty>>, <<kill>>, <<lseek>>, <<read>>, <<sbrk>>, <<write>>.*/ #include <assert.h>#include <stdlib.h>#include <stdio.h> #ifndef HAVE_ASSERT_FUNC/* func can be NULL, in which case no function information is given.  */void__assert_func (const char *file,	int line,	const char *func,	const char *failedexpr){  fiprintf(stderr,	   "assertion \"%s\" failed: file \"%s\", line %d%s%s\n",	   failedexpr, file, line,	   func ? ", function: " : "", func ? func : "");  abort();  /* NOTREACHED */}#endif /* HAVE_ASSERT_FUNC */ void__assert (const char *file,	int line,	const char *failedexpr){   __assert_func (file, line, NULL, failedexpr);  /* NOTREACHED */}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t