ack/util/ego/il/il_aux.h
George Koehler 17bc9cdef7 More void, fewer clang warnings in util/ego
Most warnings are for functions implicitly returning int.  Change most
of these functions to return void.  (Traditional K&R C had no void
type, but C89 has it.)

Add prototypes to most function declarations in headers.  This is
easy, because ego declares most of its extern functions, and the
comments listed most parameters.  There were a few outdated or missing
declarations, and a few .c files that failed to include an .h with the
declarations.

Add prototypes to a few function definitions in .c files.  Most
functions still have traditional K&R definitions.  Most STATIC
functions still don't have prototypes, because they have no earlier
declaration where I would have added the prototype.

Change some prototypes in util/ego/share/alloc.h.  Functions newmap()
and oldmap() handle an array of pointers to something; change the
array's type from `short **` to `void **`.  Callers use casts to go
between `void **` and the correct type, like `line_p *`.  Function
oldtable() takes a `short *`, not a `short **`; I added the wrong type
in 5bbbaf4.

Make a few other changes to silence warnings.  There are a few places
where clang wants extra parentheses in the code.

Edit util/ego/ra/build.lua to add the missing dependency on ra*.h; I
needed this to prevent crashes from ra.
2019-11-01 15:27:16 -04:00

66 lines
1.6 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".
*/
/* I N L I N E S U B S T I T U T I O N
*
* I L _ A U X . H
*/
#include <stdio.h> /* FILE */
int tsize(int type); /*
* Determine the size of a variable of
* the given type.
*/
line_p duplicate(line_p lnp); /*
* Make a duplicate of the given EM
* instruction. Pseudos may not be
* passed as argumnets.
*/
line_p copy_expr(line_p l1); /*
* copy the expression l1.
* Pseudos may not be contained in
* the list of instructions.
*/
void rem_call(call_p c); /*
* Remove a call from main memory.
*/
void remunit(short kind, proc_p p, line_p l);
/*
* Remove the CFG and EM text of
* a procedure from core.
*/
void remcc(calcnt_p head); /*
* Remove call-count info from core.
*/
call_p getcall(FILE *cf); /*
* Read a call from the call-file
*/
line_p get_text(FILE *lf, proc_p *p_out);
/*
* Read the EM text of one procedure.
* The procedure read is returned via
* p_out.
*/
calcnt_p getcc(FILE *ccf, proc_p p);
/*
* Read the call-count information
* of procedure p.
*/
void putcall(call_p call, FILE *cfile, short level);
/*
* Write the call
* with the given id to the given file.
* The level is the nesting level, used by
* putcall when it calls itself recurively.
* It should be 0 on outer levels.
*/
long putcc(calcnt_p head, FILE *ccf);
/*
* Write call-count information to
* file ccf.
*/