9037d137f5
This uncovers a problem in il/il_aux.c: it passes 3 arguments to getlines(), but the function expects 4 arguments. I add FALSE as the 4th argument. TRUE would fill in the list of mesregs. IL uses mesregs during phase 1, but this call to getlines() is in phase 2. TRUE would leak memory unless I added a call to Ldeleteset(mesregs). So I pass FALSE. Functions passed to go() now have a `void *` parameter because no_action() now takes a `void *`.
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/* $Id$ */
|
|
/*
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
*/
|
|
/* F I L E N A M E S */
|
|
|
|
/* The names of the input files of every phase are passed as
|
|
* arguments to the phase. First come the input file names,
|
|
* then the output file names. We use a one-letter convention
|
|
* to denote the type of file:
|
|
* p: procedure table file
|
|
* d: data table file
|
|
* l: EM text file (lines of EM instructions)
|
|
* b: basic block file (Control Flow Graph file)
|
|
*/
|
|
|
|
struct files
|
|
{
|
|
/* Input files */
|
|
|
|
const char* pname_in;
|
|
const char* dname_in;
|
|
const char* lname_in;
|
|
const char* bname_in;
|
|
|
|
/* Output files */
|
|
|
|
const char* pname_out;
|
|
const char* dname_out;
|
|
const char* lname_out;
|
|
const char* bname_out;
|
|
|
|
/* The rest of the arguments. */
|
|
|
|
const char** argv;
|
|
int argc;
|
|
};
|
|
|
|
struct files* findfiles(int argc, const char** argv);
|
|
|
|
FILE *openfile(const char *name, const char *mode);
|
|
/*
|
|
* Open a file with the given name
|
|
* and mode; aborts if the file
|
|
* cannot be opened.
|
|
*/
|