33c0573598
In many systems, malloc() can allocate outside the brk area. The calculation with sbrk() misses those allocations. When LLgen or ncgg reported the memory usage, the value was probably too low.
63 lines
1.1 KiB
C
63 lines
1.1 KiB
C
/*
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
*/
|
|
#ifndef NORCSID
|
|
static char rcsid[]= "$Id$";
|
|
#endif
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include "extern.h"
|
|
|
|
char *filename;
|
|
|
|
main(argc,argv) char **argv; {
|
|
extern int nerrors;
|
|
extern int code_in_c;
|
|
extern int tabledebug;
|
|
extern int verbose;
|
|
|
|
while (argc >1 && argv[1][0]=='-') {
|
|
switch(argv[1][1]) {
|
|
case 'c':
|
|
code_in_c = 0;
|
|
break;
|
|
case 'd':
|
|
tabledebug++;
|
|
break;
|
|
case 'v':
|
|
verbose++;
|
|
break;
|
|
default:
|
|
error("Unknown flag -%c",argv[1][1]);
|
|
}
|
|
argc--; argv++;
|
|
}
|
|
if (argc==2) {
|
|
if (freopen(argv[1],"r",stdin)==NULL) {
|
|
error("Can't open %s",argv[1]);
|
|
exit(-1);
|
|
}
|
|
filename = argv[1];
|
|
}
|
|
else if (argc == 1) {
|
|
filename = "";
|
|
} else
|
|
error("Usage: %s [-c] [-d] [-v] [table]",argv[0]);
|
|
initemhash();
|
|
enterkeyw();
|
|
initnodes();
|
|
initio();
|
|
yyparse();
|
|
if (nerrors==0) {
|
|
finishio();
|
|
statistics();
|
|
if (verbose)
|
|
hallverbose();
|
|
} else {
|
|
errorexit();
|
|
}
|
|
exit(nerrors==0 ? 0 : -1);
|
|
}
|