ref: a62afbe74e2be29ed8b697a4094c5778cddfa09e
parent: 41850b088910e270b84f3a68b16c305556fa61a1
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Fri Feb 17 06:23:09 EST 2017
[libc] Don't call to __assert always It is better to call to __assert only when there is a failed assertion, because it is less disruptive with the program
--- a/libc/include/assert.h
+++ b/libc/include/assert.h
@@ -2,10 +2,10 @@
#ifndef _ASSERT_H
#define _ASSERT_H
-void __assert(int status, char *exp, char *file, long line);
+void __assert(char *exp, char *file, long line);
#ifndef NDEBUG
-# define assert(exp) __assert(exp, #exp, __FILE__, __LINE__)
+# define assert(exp) ((exp) ? (void) 0 : __assert(#exp, __FILE__, __LINE__))
#else
# define assert(exp) ((void)0)
#endif
--- a/libc/src/assert.c
+++ b/libc/src/assert.c
@@ -4,10 +4,8 @@
#include <stdlib.h>
#include <stdio.h>
-void __assert(int status, char *exp, char *file, long line)
+void __assert(char *exp, char *file, long line)
{
- if (status)
- return;
fprintf(stderr, "%s:%ld: assertion failed '%s'\n", file, line, exp);
abort();
}