xref: /plan9/sys/src/ape/lib/ap/gen/_assert.c (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
13e12c5d1SDavid du Colombier #include <stdlib.h>
23e12c5d1SDavid du Colombier #include <unistd.h>
33e12c5d1SDavid du Colombier #include <assert.h>
43e12c5d1SDavid du Colombier 
5219b2ee8SDavid du Colombier void
_assert(char * f,unsigned line)63e12c5d1SDavid du Colombier _assert(char *f, unsigned line)
73e12c5d1SDavid du Colombier {
83e12c5d1SDavid du Colombier 	char buf[20], *p, *s = &buf[20];
93e12c5d1SDavid du Colombier 	write(2, "assertion failed: file ", 23);
103e12c5d1SDavid du Colombier 	for(p = f; *p; p++) continue;
113e12c5d1SDavid du Colombier 	write(2, f, p-f);
12*59cc4ca5SDavid du Colombier 	write(2, ":", 7);
133e12c5d1SDavid du Colombier 	*--s = '\n';
143e12c5d1SDavid du Colombier 	do *--s = line%10 + '0'; while (line /= 10);
153e12c5d1SDavid du Colombier 	write(2, s, &buf[20] - s);
163e12c5d1SDavid du Colombier 	abort();
173e12c5d1SDavid du Colombier 
183e12c5d1SDavid du Colombier }
19