Used Variables instead of Options, in SConstruct
[mcc.git] / errors.c
blob9afd68dcd10a614161051d8e7bd9001aed8513d6
1 #define _BSD_SOURCE
2 #include "errors.h"
3 #include "stdlib.h"
4 #include "stdio.h"
5 #include "string.h"
6 #include "stdarg.h"
8 noreturn void _die(const char *func, const char *fmt, ...)
10 va_list ap;
11 va_start(ap, fmt);
12 fprintf(stderr, "[%s] ", func);
13 vfprintf(stderr, fmt, ap);
14 va_end(ap);
15 fputc('\n', stderr);
16 exit(1);
19 void *emalloc(size_t size)
21 void *p = malloc(size);
22 if (!p){
23 die("memory full");
25 return p;
28 char *estrdup(const char *str)
30 char *p;
31 p = strdup(str);
32 if (!p){
33 die("memory full");
35 return p;