scc

simple C compiler
git clone git://git.2f30.org/scc
Log | Files | Refs | README | LICENSE

commit 22e17d14116ca2b13ea849f2f568c417d8143888
parent dc40bafa82c336fa2c05d4fab11e5639a85ec3c6
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Fri, 17 Feb 2017 11:23:09 +0100

[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

Diffstat:
libc/include/assert.h | 4++--
libc/src/assert.c | 4+---
2 files changed, 3 insertions(+), 5 deletions(-)

diff --git 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 diff --git 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(); }