__assert_fail receives a string containing the expression assertion, the filename file, and the line number line, and prints a message on the standard error stream. For example:
__assert_fail then aborts program execution via a call to abort. The exact form of the message is up to the implementation.a.c:10: foobar: Assertion a == b failed.
If function is NULL, then omit information about the function.
assertion, file, and line must be non-NULL.
__assert_fail is not in the source standard; it is only in the binary standard.