diff options
-rw-r--r-- | mk/assert.d | 10 | ||||
-rw-r--r-- | src/assert/assert.c | 13 |
2 files changed, 23 insertions, 0 deletions
diff --git a/mk/assert.d b/mk/assert.d new file mode 100644 index 00000000..aae9fcd0 --- /dev/null +++ b/mk/assert.d @@ -0,0 +1,10 @@ +libc_C.0: libc.a(assert.o) +libc.a(assert.o): $(OBJDIR)/assert.o + @$(AR) $(ARFLAGS) $@ $(OBJDIR)/$% + +$(OBJDIR)/assert.o: src/assert/assert.c +$(OBJDIR)/assert.o: src/stdlib/_stdlib.h +$(OBJDIR)/assert.o: + @echo " [CC] $@" + @mkdir -p $(@D) + @$(CC) -c -o $@ $(CFLAGS) src/assert/assert.c diff --git a/src/assert/assert.c b/src/assert/assert.c new file mode 100644 index 00000000..2a5551a4 --- /dev/null +++ b/src/assert/assert.c @@ -0,0 +1,13 @@ +#include <stdlib.h> +#include "stdlib/_stdlib.h" + +_Noreturn void assert(int exp) +{ + (void)exp; + __stdlib.constraint_handler("Undefined Behavior: The assert() macro has been suppressed to access an actual function", NULL, 0); + abort(); +} + +/* +STDC(0) +*/ |