This commit was manufactured by cvs2svn to create branch 'parallel'.
llvm-svn: 12148
diff --git a/External/SPEC/CINT2000/197.parser/xa.c b/External/SPEC/CINT2000/197.parser/xa.c
new file mode 100644
index 0000000..1b86faf
--- /dev/null
+++ b/External/SPEC/CINT2000/197.parser/xa.c
@@ -0,0 +1,16 @@
+
+#include <stdlib.h>
+
+int max_space_in_use = 0;
+int space_in_use = 0;
+
+void initialize_memory() {
+}
+
+void * xalloc(int size) {
+ return malloc(size);
+}
+
+void xfree(void *P, int size) {
+ free(P);
+}
diff --git a/MultiSource/Benchmarks/MallocBench/p2c/p2c.hdrs b/MultiSource/Benchmarks/MallocBench/p2c/p2c.hdrs
new file mode 100644
index 0000000..c11088b
--- /dev/null
+++ b/MultiSource/Benchmarks/MallocBench/p2c/p2c.hdrs
@@ -0,0 +1,574 @@
+
+/* Declarations created by "makeproto" on Mon Feb 16 16:39:12 2004 */
+
+
+
+/* Declarations from trans.c */
+extern void saveoldfile PP( (char *fname) );
+extern void closelogfile PV();
+extern void showinitfile PV();
+extern void usage PV();
+extern int main PP( (int argc, char **argv) );
+extern int outmem PV();
+extern int ISBOGUS PP( (char *p) );
+extern char *meaningkindname PP( (enum meaningkind kind) );
+extern char *typekindname PP( (enum typekind kind) );
+extern char *exprkindname PP( (enum exprkind kind) );
+extern char *stmtkindname PP( (enum stmtkind kind) );
+extern void dumptype PP( (Type *tp) );
+extern void dumpmeaning PP( (Meaning *mp) );
+extern void dumpsymtable PP( (Symbol *sym) );
+extern void dumptypename PP( (Type *tp, int waddr) );
+extern void dumptypename_file PP( (FILE *f, Type *tp) );
+extern void dumpexpr PP( (Expr *ex) );
+extern void dumpexpr_file PP( (FILE *f, Expr *ex) );
+extern void innerdumpstmt PP( (Stmt *sp, int indent) );
+extern void dumpstmt PP( (Stmt *sp, int indent) );
+extern void dumpstmt_file PP( (FILE *f, Stmt *sp) );
+extern void wrapup PV();
+extern void mem_summary PV();
+extern anyptr test_malloc PP( (int size, int *total, int *final) );
+extern void test_free PP( (anyptr p) );
+extern anyptr test_realloc PP( (anyptr p, int size) );
+
+/* Declarations from stuff.c */
+extern void debughook PV();
+extern Strlist *strlist_append PP( (Strlist **base, char *s) );
+extern Strlist *strlist_insert PP( (Strlist **base, char *s) );
+extern Strlist *strlist_add PP( (Strlist **base, char *s) );
+extern void strlist_mix PP( (Strlist **base, Strlist *sl) );
+extern void strlist_eat PP( (Strlist **base) );
+extern void strlist_empty PP( (Strlist **base) );
+extern void strlist_remove PP( (Strlist **base, char *s) );
+extern void strlist_delete PP( (Strlist **base, Strlist *sl) );
+extern Strlist *strlist_find PP( (Strlist *base, char *s) );
+extern Strlist *strlist_cifind PP( (Strlist *base, char *s) );
+extern int strcincmp PP( (char *s1, char *s2, int n) );
+extern int strcicmp PP( (char *s1, char *s2) );
+extern void fixfname PP( (char *fn, char *ext) );
+extern void removesuffix PP( (char *fn) );
+extern char *stralloc PP( (char *s) );
+extern void strchange PP( (char **v, char *s) );
+extern char *format_gen PP( (char *fmt, long i1, long i2, double dbl,
+ char *s1, char *s2, char *s3) );
+extern char *format_none PP( (char *fmt) );
+extern char *format_d PP( (char *fmt, int a1) );
+extern char *format_g PP( (char *fmt, double a1) );
+extern char *format_s PP( (char *fmt, char *a1) );
+extern char *format_ss PP( (char *fmt, char *a1, char *a2) );
+extern char *format_sd PP( (char *fmt, char *a1, int a2) );
+extern char *format_ds PP( (char *fmt, long a1, char *a2) );
+extern char *format_dd PP( (char *fmt, long a1, long a2) );
+extern char *format_sss PP( (char *fmt, char *a1, char *a2, char *a3) );
+extern char *format_ssd PP( (char *fmt, char *a1, char *a2, long a3) );
+extern char *format_sds PP( (char *fmt, char *a1, long a2, char *a3) );
+extern int my_toupper PP( (int c) );
+extern int my_tolower PP( (int c) );
+extern void upc PP( (char *s) );
+extern void lwc PP( (char *s) );
+extern char *strupper PP( (char *s) );
+extern char *strlower PP( (char *s) );
+extern char *my_strchr PP( (char *cp, int c) );
+extern char *my_strrchr PP( (char *cp, int c) );
+extern char *my_strtok PP( (char *cp, char *delim) );
+extern long my_strtol PP( (char *buf, char **ret, int base) );
+extern void init_stuff PV();
+
+/* Declarations from out.c */
+extern void setup_out PV();
+extern void select_outfile PP( (FILE *fp) );
+extern void start_source PV();
+extern void end_source PV();
+extern int line_start PV();
+extern int cur_column PV();
+extern int lookback PP( (int n) );
+extern int lookback_prn PP( (int n) );
+extern int adddeltas PP( (int d1, int d2) );
+extern int applydelta PP( (int i, int d) );
+extern void moreindent PP( (int delta) );
+extern void singleindent PP( (int delta) );
+extern void futureindent PP( (int num) );
+extern int parsedelta PP( (char *cp, int def) );
+extern void eatblanklines PV();
+extern int parse_breakstr PP( (char *cp) );
+extern long getcurtime PV();
+extern void output PP( (char *msg) );
+extern void out_n_spaces PP( (int n) );
+extern void out_spaces PP( (int spc, int over, int len, int delta) );
+extern void testlinebreaker PP( (int lev, char *fn) );
+extern void outsection PP( (int size) );
+extern int isembedcomment PP( (Strlist *cmt) );
+extern Strlist *outcomments PP( (Strlist *cmt) );
+extern void outcomment PP( (Strlist *cmt) );
+extern void outtrailcomment PP( (Strlist *cmt, int serial, int indent) );
+extern void flushcomments PP( (Strlist **cmt, int kind, int serial) );
+extern char *rawCstring PP( (char *fmt, char *s, int len, int special) );
+extern char *makeCstring PP( (char *s, int len) );
+extern char *makeCchar PP( (int ich) );
+
+/* Declarations from comment.c */
+extern void setup_comment PV();
+extern int commentlen PP( (Strlist *cmt) );
+extern int commentvisible PP( (Strlist *cmt) );
+extern void steal_comments PP( (long olds, long news, int always) );
+extern Strlist *fixbeginendcomment PP( (Strlist *cmt) );
+extern void attach_comments PP( (Stmt *sbase) );
+extern void setcommentkind PP( (Strlist *cmt, int kind) );
+extern void commentline PP( (int kind) );
+extern void addnote PP( (char *msg, long serial) );
+extern Strlist *grabcomment PP( (int kind) );
+extern int matchcomment PP( (Strlist *cmt, int kind, int stamp) );
+extern Strlist *findcomment PP( (Strlist *cmt, int kind, int stamp) );
+extern Strlist *extractcomment PP( (Strlist **cmt, int kind, int stamp) );
+extern void changecomments PP( (Strlist *cmt, int okind, int ostamp,
+ int kind, int stamp) );
+
+/* Declarations from lex.c */
+extern char *fixpascalname PP( (char *name) );
+extern void init_lex PV();
+extern void setup_lex PV();
+extern int checkeatnote PP( (char *msg) );
+extern void beginerror PV();
+extern void counterror PV();
+extern void error PP( (char *msg) );
+extern void interror PP( (char *proc, char *msg) );
+extern void warning PP( (char *msg) );
+extern void intwarning PP( (char *proc, char *msg) );
+extern void note PP( (char *msg) );
+extern void endnote PP( (char *msg) );
+extern void showendnotes PV();
+extern char *tok_name PP( (Token tok) );
+extern void expected PP( (char *msg) );
+extern void expecttok PP( (Token tok) );
+extern void needtok PP( (Token tok) );
+extern int wexpected PP( (char *msg) );
+extern int wexpecttok PP( (Token tok) );
+extern int wneedtok PP( (Token tok) );
+extern void alreadydef PP( (Symbol *sym) );
+extern void undefsym PP( (Symbol *sym) );
+extern void symclass PP( (Symbol *sym) );
+extern void badtypes PV();
+extern void valrange PV();
+extern void skipparens PV();
+extern void skiptotoken2 PP( (Token tok1, Token tok2) );
+extern void skippasttoken2 PP( (Token tok1, Token tok2) );
+extern void skippasttotoken PP( (Token tok1, Token tok2) );
+extern void skiptotoken PP( (Token tok) );
+extern void skippasttoken PP( (Token tok) );
+extern int skipopenparen PV();
+extern int skipcloseparen PV();
+extern int skipcomma PV();
+extern char *findaltname PP( (char *name, int num) );
+extern Symbol *findsymbol_opt PP( (char *name) );
+extern Symbol *findsymbol PP( (char *name) );
+extern void clearprogress PV();
+extern void progress PV();
+extern void p2c_getline PV();
+extern void push_input_file PP( (FILE *fp, char *fname, int isinclude) );
+extern void include_as_import PV();
+extern void push_input_strlist PP( (Strlist *sp, char *fname) );
+extern void pop_input PV();
+extern int undooption PP( (int i, char *name) );
+extern void badinclude PV();
+extern int handle_include PP( (char *fn) );
+extern int turbo_directive PP( (char *closing, char *after) );
+extern void defmacro PP( (char *name, long kind, char *fname,
+ int lnum) );
+extern void check_unused_macros PV();
+extern char *getinlinepart PV();
+extern char getchartok PV();
+extern char *getparenstr PP( (char *buf) );
+extern void leadingcomments PV();
+extern void get_C_string PP( (int term) );
+extern void begincommenting PP( (char *cp) );
+extern void saveinputcomment PP( (char *cp) );
+extern void endcommenting PP( (char *cp) );
+extern int peeknextchar PV();
+extern void gettok PV();
+extern void checkkeyword PP( (Token tok) );
+extern void checkmodulewords PV();
+
+/* Declarations from parse.c */
+extern void setup_parse PV();
+extern void echobreak PV();
+extern void echoword PP( (char *name, int comma) );
+extern void echoprocname PP( (Meaning *mp) );
+extern void need_forward_decl PP( (Meaning *func) );
+extern void free_stmt PP( (Stmt *sp) );
+extern Stmt *makestmt PP( (enum stmtkind kind) );
+extern Stmt *makestmt_call PP( (Expr *call) );
+extern Stmt *makestmt_assign PP( (Expr *lhs, Expr *rhs) );
+extern Stmt *makestmt_if PP( (Expr *cond, Stmt *thn, Stmt *els) );
+extern Stmt *makestmt_seq PP( (Stmt *s1, Stmt *s2) );
+extern Stmt *copystmt PP( (Stmt *sp) );
+extern void nukestmt PP( (Stmt *sp) );
+extern void splicestmt PP( (Stmt *sp, Stmt *spnew) );
+extern int stmtcount PP( (Stmt *sp) );
+extern Stmt *close_files_to_ctx PP( (Meaning *ctx) );
+extern int simplewith PP( (Expr *ex) );
+extern int simplefor PP( (Stmt *sp, Expr *ex) );
+extern int tryfuncmacro PP( (Expr **exp, Meaning *mp) );
+extern Expr *replaceexprexpr PP( (Expr *ex, Expr *oldex, Expr *newex,
+ int keeptype) );
+extern void replaceexpr PP( (Stmt *sp, Expr *oldex, Expr *newex) );
+extern Stmt *mixassignments PP( (Stmt *sp, Meaning *mp) );
+extern int expr_is_bool PP( (Expr *ex, int want) );
+extern int implies PP( (Expr *c1, Expr *c2, int not1, int not2) );
+extern void infiniteloop PP( (Stmt *sp) );
+extern Expr *print_func PP( (Expr *ex) );
+extern int printnl_func PP( (Expr *ex) );
+extern Expr *chg_printf PP( (Expr *ex) );
+extern Expr *mix_printf PP( (Expr *ex, Expr *ex2) );
+extern void eatstmt PP( (Stmt **spp) );
+extern int haslabels PP( (Stmt *sp) );
+extern void fixblock PP( (Stmt **spp, Stmt *thereturn) );
+extern int checkvarchangedexpr PP( (Expr *ex, Meaning *mp, int addrokay) );
+extern int checkvarchanged PP( (Stmt *sp, Meaning *mp) );
+extern int checkexprchanged PP( (Stmt *sp, Expr *ex) );
+extern void checkvaroffsetexpr PP( (Expr *ex, Meaning *mp, int myoffset) );
+extern void checkvaroffsetstmt PP( (Stmt *sp, Meaning *mp) );
+extern int checkvaroffset PP( (Stmt *sp, Meaning *mp) );
+extern Expr *initfilevar PP( (Expr *ex) );
+extern void initfilevars PP( (Meaning *mp, Stmt ***sppp, Expr *exbase) );
+extern void movetoend PP( (Meaning *mp) );
+extern void do_include PP( (Token blkind) );
+extern void p_block PP( (Token blkind) );
+extern int p_search PP( (char *fname, char *ext, int need) );
+extern void p_program PV();
+
+/* Declarations from decl.c */
+extern Meaning *makespecialproc PP( (char *name, Stmt *(*handler)()) );
+extern Meaning *makestandardproc PP( (char *name, Stmt *(*handler)()) );
+extern Meaning *makespecialfunc PP( (char *name, Expr *(*handler)()) );
+extern Meaning *makestandardfunc PP( (char *name, Expr *(*handler)()) );
+extern Meaning *makespecialvar PP( (char *name, Expr *(*handler)()) );
+extern void setup_decl PV();
+extern int push_imports PV();
+extern void pop_imports PP( (int mark) );
+extern void import_ctx PP( (Meaning *ctx) );
+extern void perm_import PP( (Meaning *ctx) );
+extern void unimport PP( (int mark) );
+extern void activatemeaning PP( (Meaning *mp) );
+extern void pushctx PP( (Meaning *ctx) );
+extern void popctx PV();
+extern void forget_ctx PP( (Meaning *ctx, int all) );
+extern void handle_nameof PV();
+extern int issafename PP( (Symbol *sp, int isglobal, int isdefine) );
+extern void setupmeaning PP( (Meaning *mp, Symbol *sym,
+ enum meaningkind kind,
+ enum meaningkind namekind) );
+extern Meaning *addmeaningas PP( (Symbol *sym, enum meaningkind kind,
+ enum meaningkind namekind) );
+extern Meaning *addmeaning PP( (Symbol *sym, enum meaningkind kind) );
+extern Meaning *addmeaningafter PP( (Meaning *mpprev, Symbol *sym,
+ enum meaningkind kind) );
+extern void unaddmeaning PP( (Meaning *mp) );
+extern void readdmeaning PP( (Meaning *mp) );
+extern Meaning *addfield PP( (Symbol *sym, Meaning ***flast,
+ Type *rectype, Meaning *tname) );
+extern int isfiletype PP( (Type *type, int big) );
+extern Meaning *isfilevar PP( (Expr *ex) );
+extern Type *filebasetype PP( (Type *type) );
+extern Expr *filebasename PP( (Expr *ex) );
+extern Expr *filenamepart PP( (Expr *ex) );
+extern int fileisbuffered PP( (Expr *ex, int maybe) );
+extern Type *findbasetype_ PP( (Type *type, int flags) );
+extern Type *findbasetype PP( (Type *type, int flags) );
+extern Expr *arraysize PP( (Type *tp, int incskipped) );
+extern Type *promote_type PP( (Type *tp) );
+extern Type *promote_type_bin PP( (Type *t1, Type *t2) );
+extern void predeclare_varstruct PP( (Meaning *mp) );
+extern void outdeclarator PP( (Type *type, char *name, int flags) );
+extern Type *canonicaltype PP( (Type *type) );
+extern int identicaltypes PP( (Type *t1, Type *t2) );
+extern int similartypes PP( (Type *t1, Type *t2) );
+extern void declarefiles PP( (Strlist *fnames) );
+extern char *variantfieldname PP( (int num) );
+extern int record_is_union PP( (Type *tp) );
+extern void outfieldlist PP( (Meaning *mp) );
+extern void declarebigfile PP( (Type *type) );
+extern void outbasetype PP( (Type *type, int flags) );
+extern void out_type PP( (Type *type, int witharrays) );
+extern int varstorageclass PP( (Meaning *mp) );
+extern char *storageclassname PP( (int i) );
+extern void declarevar PP( (Meaning *mp, int which) );
+extern int checkvarmac PP( (Meaning *mp) );
+extern int declarevars PP( (Meaning *ctx, int invarstruct) );
+extern void redeclarevars PP( (Meaning *ctx) );
+extern void out_argdecls PP( (Type *ftype) );
+extern void makevarstruct PP( (Meaning *func) );
+extern Type *maketype PP( (enum typekind kind) );
+extern Type *makesubrangetype PP( (Type *type, Expr *smin, Expr *smax) );
+extern Type *makesettype PP( (Type *setof) );
+extern Type *makestringtype PP( (int len) );
+extern Type *makepointertype PP( (Type *type) );
+extern Value p_constant PP( (Type *type) );
+extern int typebits PP( (long smin, long smax) );
+extern int packedsize PP( (char *fname, Type **typep, long *sizep,
+ int mode) );
+extern void decl_comments PP( (Meaning *mp) );
+extern void p_attributes PV();
+extern void ignore_attributes PV();
+extern int size_attributes PV();
+extern void p_mech_spec PP( (int doref) );
+extern Type *p_modula_subrange PP( (Type *basetype) );
+extern void makefakestruct PP( (Type *tp, Meaning *tname) );
+extern Type *p_type PP( (Meaning *tname) );
+extern Type *p_funcdecl PP( (int *isfunc, int istype) );
+extern Symbol *findlabelsym PV();
+extern void p_labeldecl PV();
+extern Meaning *findfieldname PP( (Symbol *sym, Meaning **variants,
+ int *nvars) );
+extern Expr *p_constrecord PP( (Type *type, int style) );
+extern Expr *p_constarray PP( (Type *type, int style) );
+extern Expr *p_conststring PP( (Type *type, int style) );
+extern Expr *p_subconst PP( (Type *type, int style) );
+extern void p_constdecl PV();
+extern void declaresubtypes PP( (Meaning *mp) );
+extern void declaretype PP( (Meaning *mp) );
+extern void declaretypes PP( (int outflag) );
+extern void p_typedecl PV();
+extern void setupfilevar PP( (Meaning *mp) );
+extern Meaning *validatedtype PP( (Meaning *dtype, Type *type) );
+extern void p_vardecl PV();
+extern void p_valuedecl PV();
+extern Meaning *maketempvar PP( (Type *type, char *name) );
+extern Meaning *makestmttempvar PP( (Type *type, char *name) );
+extern Meaning *markstmttemps PV();
+extern void freestmttemps PP( (Meaning *mark) );
+extern void freetempvar PP( (Meaning *tvar) );
+extern void canceltempvar PP( (Meaning *tvar) );
+
+/* Declarations from expr.c */
+extern void free_value PP( (Value *val) );
+extern Value copyvalue PP( (Value val) );
+extern int valuesame PP( (Value a, Value b) );
+extern char *value_name PP( (Value val, char *intfmt, int islong) );
+extern Value value_cast PP( (Value val, Type *type) );
+extern Type *ord_type PP( (Type *tp) );
+extern int long_type PP( (Type *tp) );
+extern Value make_ord PP( (Type *type, long i) );
+extern long ord_value PP( (Value val) );
+extern void ord_range_expr PP( (Type *type, Expr **smin, Expr **smax) );
+extern int ord_range PP( (Type *type, long *smin, long *smax) );
+extern void freeexpr PP( (Expr *ex) );
+extern Expr *makeexpr PP( (enum exprkind kind, int n) );
+extern Expr *makeexpr_un PP( (enum exprkind kind, Type *type,
+ Expr *arg1) );
+extern Expr *makeexpr_bin PP( (enum exprkind kind, Type *type,
+ Expr *arg1, Expr *arg2) );
+extern Expr *makeexpr_val PP( (Value val) );
+extern Expr *makeexpr_char PP( (int c) );
+extern Expr *makeexpr_long PP( (long i) );
+extern Expr *makeexpr_real PP( (char *r) );
+extern Expr *makeexpr_lstring PP( (char *msg, int len) );
+extern Expr *makeexpr_string PP( (char *msg) );
+extern int checkstring PP( (Expr *ex, char *msg) );
+extern Expr *makeexpr_var PP( (Meaning *mp) );
+extern Expr *makeexpr_name PP( (char *name, Type *type) );
+extern Expr *makeexpr_setbits PV();
+extern Expr *makeexpr_bicall_0 PP( (char *name, Type *type) );
+extern Expr *makeexpr_bicall_1 PP( (char *name, Type *type, Expr *arg1) );
+extern Expr *makeexpr_bicall_2 PP( (char *name, Type *type, Expr *arg1,
+ Expr *arg2) );
+extern Expr *makeexpr_bicall_3 PP( (char *name, Type *type, Expr *arg1,
+ Expr *arg2, Expr *arg3) );
+extern Expr *makeexpr_bicall_4 PP( (char *name, Type *type, Expr *arg1,
+ Expr *arg2, Expr *arg3, Expr *arg4) );
+extern Expr *makeexpr_bicall_5 PP( (char *name, Type *type, Expr *arg1,
+ Expr *arg2, Expr *arg3, Expr *arg4,
+ Expr *arg5) );
+extern Expr *copyexpr PP( (Expr *ex) );
+extern int exprsame PP( (Expr *a, Expr *b, int strict) );
+extern int exprequiv PP( (Expr *a, Expr *b) );
+extern void deletearg PP( (Expr **ex, int n) );
+extern void insertarg PP( (Expr **ex, int n, Expr *arg) );
+extern Expr *grabarg PP( (Expr *ex, int n) );
+extern void delsimparg PP( (Expr **ep, int n) );
+extern Expr *resimplify PP( (Expr *ex) );
+extern int realzero PP( (char *s) );
+extern int realint PP( (char *s, int i) );
+extern int checkconst PP( (Expr *ex, long val) );
+extern int isliteralconst PP( (Expr *ex, Value *valp) );
+extern int isconstexpr PP( (Expr *ex, long *valp) );
+extern int isconstantexpr PP( (Expr *ex) );
+extern Expr *makeexpr_actcast PP( (Expr *a, Type *type) );
+extern Expr *makeexpr_cast PP( (Expr *a, Type *type) );
+extern Expr *gentle_cast PP( (Expr *a, Type *type) );
+extern Expr *makeexpr_charcast PP( (Expr *ex) );
+extern Expr *makeexpr_stringcast PP( (Expr *ex) );
+extern int exprlongness PP( (Expr *ex) );
+extern Expr *makeexpr_longcast PP( (Expr *a, int tolong) );
+extern Expr *makeexpr_arglong PP( (Expr *a, int tolong) );
+extern Expr *makeexpr_unlongcast PP( (Expr *a) );
+extern Expr *makeexpr_forcelongness PP( (Expr *a) );
+extern Expr *makeexpr_ord PP( (Expr *ex) );
+extern int expr_looks_neg PP( (Expr *ex) );
+extern int expr_is_neg PP( (Expr *ex) );
+extern int expr_neg_cost PP( (Expr *a) );
+extern Expr *enum_to_int PP( (Expr *a) );
+extern Expr *neg_inside_sum PP( (Expr *a) );
+extern Expr *makeexpr_neg PP( (Expr *a) );
+extern Type *true_type PP( (Expr *ex) );
+extern int ischartype PP( (Expr *ex) );
+extern Expr *makeexpr_plus PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_minus PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_inc PP( (Expr *a, Expr *b) );
+extern Expr *distribute_plus PP( (Expr *ex) );
+extern Expr *makeexpr_times PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_sqr PP( (Expr *ex, int cube) );
+extern Expr *makeexpr_divide PP( (Expr *a, Expr *b) );
+extern int gcd PP( (int a, int b) );
+extern int negsigns PP( (int mask) );
+extern int possiblesigns PP( (Expr *ex) );
+extern Expr *dodivmod PP( (char *funcname, enum exprkind ekind,
+ Expr *a, Expr *b) );
+extern Expr *makeexpr_div PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_mod PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_rem PP( (Expr *a, Expr *b) );
+extern int expr_not_cost PP( (Expr *a) );
+extern Expr *makeexpr_not PP( (Expr *a) );
+extern Type *mixsets PP( (Expr **ep1, Expr **ep2) );
+extern Meaning *istempprocptr PP( (Expr *ex) );
+extern Expr *makeexpr_stringify PP( (Expr *ex) );
+extern Expr *makeexpr_rel PP( (enum exprkind rel, Expr *a, Expr *b) );
+extern Expr *makeexpr_and PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_or PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_range PP( (Expr *ex, Expr *exlow, Expr *exhigh,
+ int higheq) );
+extern Expr *makeexpr_cond PP( (Expr *c, Expr *a, Expr *b) );
+extern int expr_is_lvalue PP( (Expr *ex) );
+extern int expr_has_address PP( (Expr *ex) );
+extern Expr *checknil PP( (Expr *ex) );
+extern int checkvarinlists PP( (Strlist *yes, Strlist *no, int def,
+ Meaning *mp) );
+extern void requirefilebuffer PP( (Expr *ex) );
+extern Expr *makeexpr_hat PP( (Expr *a, int check) );
+extern Expr *un_sign_extend PP( (Expr *a) );
+extern Expr *makeexpr_addr PP( (Expr *a) );
+extern Expr *makeexpr_addrstr PP( (Expr *a) );
+extern Expr *makeexpr_addrf PP( (Expr *a) );
+extern Expr *makeexpr_index PP( (Expr *a, Expr *b, Expr *offset) );
+extern Expr *makeexpr_type PP( (Type *type) );
+extern Expr *makeexpr_sizeof PP( (Expr *ex, int incskipped) );
+extern int exprspeed PP( (Expr *ex) );
+extern int noargdependencies PP( (Expr *ex, int vars) );
+extern int nodependencies PP( (Expr *ex, int vars) );
+extern int exprdependsvar PP( (Expr *ex, Meaning *mp) );
+extern int exprdepends PP( (Expr *ex, Expr *ex2) );
+extern int nosideeffects_func PP( (Expr *ex) );
+extern int deterministic_func PP( (Expr *ex) );
+extern int noargsideeffects PP( (Expr *ex, int mode) );
+extern int nosideeffects PP( (Expr *ex, int mode) );
+extern int exproccurs PP( (Expr *ex, Expr *ex2) );
+extern Expr *singlevar PP( (Expr *ex) );
+extern int structuredfunc PP( (Expr *ex) );
+extern int strlapfunc PP( (Expr *ex) );
+extern Meaning *istempvar PP( (Expr *ex) );
+extern Meaning *totempvar PP( (Expr *ex) );
+extern Meaning *isretvar PP( (Expr *ex) );
+extern Expr *bumpstring PP( (Expr *ex, Expr *index, int offset) );
+extern long po2m1 PP( (int n) );
+extern int isarithkind PP( (enum exprkind kind) );
+extern Expr *makeexpr_assign PP( (Expr *a, Expr *b) );
+extern Expr *makeexpr_comma PP( (Expr *a, Expr *b) );
+extern int strmax PP( (Expr *ex) );
+extern int strhasnull PP( (Value val) );
+extern int istempsprintf PP( (Expr *ex) );
+extern Expr *makeexpr_sprintfify PP( (Expr *ex) );
+extern Expr *makeexpr_unsprintfify PP( (Expr *ex) );
+extern int sprintflength PP( (Expr *ex, int allownulls) );
+extern Expr *makeexpr_concat PP( (Expr *a, Expr *b, int usesprintf) );
+extern Expr *cleansprintf PP( (Expr *ex) );
+extern Expr *makeexpr_substring PP( (Expr *vex, Expr *ex, Expr *exi,
+ Expr *exj) );
+extern Expr *makeexpr_dot PP( (Expr *ex, Meaning *mp) );
+extern Expr *makeexpr_dotq PP( (Expr *ex, char *name, Type *type) );
+extern Expr *strmax_func PP( (Expr *ex) );
+extern Expr *makeexpr_nil PV();
+extern Expr *makeexpr_ctx PP( (Meaning *ctx) );
+extern Expr *force_signed PP( (Expr *ex) );
+extern Expr *force_unsigned PP( (Expr *ex) );
+extern long type_sizeof PP( (Type *type, int pasc) );
+extern Value eval_expr PP( (Expr *ex) );
+extern Value eval_expr_consts PP( (Expr *ex) );
+extern Value eval_expr_pasc PP( (Expr *ex) );
+extern int expr_is_const PP( (Expr *ex) );
+extern Expr *eatcasts PP( (Expr *ex) );
+
+/* Declarations from pexpr.c */
+extern Expr *dots_n_hats PP( (Expr *ex, Type *target) );
+extern Expr *p_index PP( (Expr *ex, Expr *ex2) );
+extern Expr *fake_dots_n_hats PP( (Expr *ex) );
+extern void var_reference PP( (Meaning *mp) );
+extern Expr *p_ord_expr PV();
+extern Expr *packset PP( (Expr *ex, Type *type) );
+extern Expr *p_setfactor PP( (Type *target, int sure) );
+extern Expr *p_funcarglist PP( (Expr *ex, Meaning *args, int firstarg,
+ int ismacro) );
+extern Expr *replacemacargs PP( (Expr *ex, Expr *fex) );
+extern Expr *p_noarglist PP( (Expr *ex, Meaning *mp, Meaning *args) );
+extern void func_reference PP( (Meaning *func) );
+extern Expr *p_funccall PP( (Meaning *mp) );
+extern Expr *accumulate_strlit PV();
+extern Expr *pascaltypecast PP( (Type *type, Expr *ex2) );
+extern Expr *p_expr PP( (Type *target) );
+extern Type *nametotype PP( (char *name) );
+extern int istypespec PV();
+extern Expr *pc_parentype PP( (char *cp) );
+extern Expr *pc_factor PV();
+extern Expr *pc_expr2 PP( (int prec) );
+extern Expr *pc_expr PV();
+extern Expr *pc_expr_str PP( (char *buf) );
+extern Expr *fixexpr PP( (Expr *ex, int env) );
+extern void out_var PP( (Meaning *mp, int prec) );
+extern void out_field PP( (Meaning *mp) );
+extern void out_expr PP( (Expr *ex) );
+extern void out_expr_top PP( (Expr *ex) );
+extern void out_expr_factor PP( (Expr *ex) );
+extern void out_expr_parens PP( (Expr *ex) );
+extern void out_expr_stmt PP( (Expr *ex) );
+extern void out_expr_bool PP( (Expr *ex) );
+
+/* Declarations from funcs.c */
+extern void setup_funcs PV();
+extern int isvar PP( (Expr *ex, Meaning *mp) );
+extern char *getstring PP( (Expr *ex) );
+extern Expr *p_parexpr PP( (Type *target) );
+extern Type *argbasetype PP( (Expr *ex) );
+extern Type *choosetype PP( (Type *t1, Type *t2) );
+extern Expr *convert_offset PP( (Type *type, Expr *ex2) );
+extern Expr *convert_size PP( (Type *type, Expr *ex, char *name) );
+extern Stmt *proc_assert PV();
+extern Stmt *wrapopencheck PP( (Stmt *sp, Expr *fex) );
+extern void parse_special_variant PP( (Type *tp, char *buf) );
+extern char *find_special_variant PP( (char *buf, char *spname,
+ Strlist *splist, int need) );
+extern int is_std_file PP( (Expr *ex) );
+extern Stmt *proc_exit PV();
+extern Stmt *doseek PP( (Expr *fex, Expr *ex) );
+extern Expr *writeelement PP( (Expr *ex, Expr *wid, Expr *prec,
+ int base) );
+extern void decl_builtins PV();
+
+/* Declarations from dir.c */
+extern void init_dir PV();
+extern void setup_dir PV();
+extern void setup_module PP( (char *name, int defn) );
+extern void fix_parameters PV();
+extern Stmt *fix_statement PP( (Stmt *sp) );
+extern Expr *fix_expression PP( (Expr *ex, int env) );
+extern Expr *fix_bicall PP( (Expr *ex, int env) );
+extern int boolean_bicall PP( (char *name) );
+extern unsigned int safemask_bicall PP( (char *name) );
+extern int sideeffects_bicall PP( (char *name) );
+
+/* Declarations from hpmods.c */
+extern void hpmods PP( (char *name, int defn) );
+
+/* Declarations from citmods.c */
+extern void citmods PP( (char *name, int defn) );
+
+
+/* End. */
+
diff --git a/MultiSource/Benchmarks/MallocBench/p2c/p2c.proto b/MultiSource/Benchmarks/MallocBench/p2c/p2c.proto
new file mode 100644
index 0000000..34067ba
--- /dev/null
+++ b/MultiSource/Benchmarks/MallocBench/p2c/p2c.proto
@@ -0,0 +1,426 @@
+
+/* Declarations created by "makeproto" on Mon Feb 16 16:39:12 2004 */
+
+
+
+/* Declarations from trans.c */
+#ifdef PROTO_TRANS_C
+Static void initrc PV();
+Static int readrc PP( (char *rcname, int need) );
+Static void postrc PV();
+Static void openlogfile PV();
+#endif /*PROTO_TRANS_C*/
+
+/* Declarations from stuff.c */
+#ifdef PROTO_STUFF_C
+Static void cvcase PP( (char *buf, int flags) );
+#endif /*PROTO_STUFF_C*/
+
+/* Declarations from out.c */
+#ifdef PROTO_OUT_C
+Static void leading_tab PP( (int col) );
+Static void flush_outbuf PP( (int numbreaks, int *breakpos,
+ int *breakindent, int numedits,
+ int *editpos, char *editold,
+ char *editnew) );
+Static int readquotes PP( (int *posp, int err) );
+Static int readparens PP( (int *posp, int err) );
+Static int measurechars PP( (int first, int last) );
+Static void makeedit PP( (int pos, int ch) );
+Static void unedit PV();
+Static int parencount PP( (Paren *par) );
+Static int trybreakline PP( (int pos, int count, int indent,
+ double badness, int flags, Paren *parens) );
+#endif /*PROTO_OUT_C*/
+
+/* Declarations from comment.c */
+#ifdef PROTO_COMMENT_C
+Static void attach_mark PP( (Stmt *sp) );
+#endif /*PROTO_COMMENT_C*/
+
+/* Declarations from lex.c */
+#ifdef PROTO_LEX_C
+Static void makekeyword PP( (char *name) );
+Static void makeglobword PP( (char *name) );
+Static void makekeywords PV();
+Static Symbol *Pkeyword PP( (char *name, Token tok) );
+Static Symbol *Pkeywordposs PP( (char *name, Token tok) );
+Static void makePascalwords PV();
+Static void deterministic PP( (char *name) );
+Static void nosideeff PP( (char *name) );
+Static void recordsideeffects PV();
+Static void push_input PV();
+Static int parsecomment PP( (int p2c_only, int starparen) );
+Static void comment PP( (int starparen) );
+Static int getflag PV();
+#endif /*PROTO_LEX_C*/
+
+/* Declarations from parse.c */
+#ifdef PROTO_PARSE_C
+Static void forward_decl PP( (Meaning *func, int isextern) );
+Static Stmt *p_stmt PP( (Stmt *slist, int sflags) );
+Static int usebraces PP( (Stmt *sp, int opts) );
+Static void outnl PP( (int serial) );
+Static void out_block PP( (Stmt *spbase, int opts, int serial) );
+Static int checkreturns PP( (Stmt **spp, int nearret) );
+Static int isescape PP( (Expr *ex) );
+Static int deadendblock PP( (Stmt *sp) );
+Static int checkcomma_expr PP( (Stmt **spp, Expr **exp) );
+Static void checkcommas PP( (Stmt **spp) );
+Static int checkvarchangeable PP( (Expr *ex, Meaning *mp) );
+Static Stmt *p_body PV();
+Static void out_function PP( (Meaning *func) );
+Static void scanfwdparams PP( (Meaning *mp) );
+Static void p_function PP( (int isfunc) );
+Static void out_include PP( (char *name, int quoted) );
+Static void cleanheadername PP( (char *dest, char *name) );
+Static int tryimport PP( (Symbol *sym, char *fname, char *ext,
+ int need) );
+Static void p_import PP( (int inheader) );
+Static void skipunitheader PV();
+Static void skiptomodule PV();
+Static void p_moduleinit PP( (Meaning *mod) );
+Static void p_nested_module PV();
+Static int p_module PP( (int ignoreit, int isdefn) );
+#endif /*PROTO_PARSE_C*/
+
+/* Declarations from decl.c */
+#ifdef PROTO_DECL_C
+Static Meaning *findstandardmeaning PP( (enum meaningkind kind, char *name) );
+Static Meaning *makestandardmeaning PP( (enum meaningkind kind, char *name) );
+Static Type *makestandardtype PP( (enum typekind kind, Meaning *mp) );
+Static Stmt *nullspecialproc PP( (Meaning *mp) );
+Static Stmt *nullstandardproc PP( (Expr *ex) );
+Static Expr *nullspecialfunc PP( (Meaning *mp) );
+Static Expr *nullstandardfunc PP( (Expr *ex) );
+Static Expr *nullspecialvar PP( (Meaning *mp) );
+Static void initmeaning PP( (Meaning *mp) );
+Static void declare_args PP( (Type *type, int isheader, int isforward) );
+Static int checkstructconst PP( (Meaning *mp) );
+Static int mixable PP( (Meaning *mp1, Meaning *mp2, int args,
+ int flags) );
+Static int checkvarmacdef PP( (Expr *ex, Meaning *mp) );
+Static void fielddecl PP( (Meaning *mp, Type **type, Type **tp2,
+ long *val, int ispacked, int *aligned) );
+Static void realignfields PP( (Meaning *firstmp, Meaning *stopmp) );
+static void tryrealignfields PP( (Meaning *firstmp) );
+Static void p_fieldlist PP( (Type *tp, Meaning **flast, int ispacked,
+ Meaning *tname) );
+Static Type *p_arraydecl PP( (char *tname, int ispacked,
+ Meaning ***confp) );
+Static Type *p_conformant_array PP( (char *tname, Meaning ***confp) );
+Static void nameexternalvar PP( (Meaning *mp, char *name) );
+Static void handlebrackets PP( (Meaning *mp, int skip, int wasaliased) );
+Static void handleabsolute PP( (Meaning *mp, int skip) );
+#endif /*PROTO_DECL_C*/
+
+/* Declarations from expr.c */
+#ifdef PROTO_EXPR_C
+Static Expr *docast PP( (Expr *a, Type *type) );
+Static Expr *dolongcast PP( (Expr *a, int tolong) );
+Static Expr *commute PP( (Expr *a, Expr *b, enum exprkind kind) );
+Static Value eval_expr_either PP( (Expr *ex, int pasc) );
+#endif /*PROTO_EXPR_C*/
+
+/* Declarations from pexpr.c */
+#ifdef PROTO_PEXPR_C
+Static void bindnames PP( (Expr *ex) );
+Static Expr *p_variable PP( (Type *target) );
+Static Expr *makesmallsetconst PP( (long bits, Type *type) );
+Static Expr *p_factor PP( (Type *target) );
+Static Expr *p_powterm PP( (Type *target) );
+Static Expr *p_term PP( (Type *target) );
+Static Expr *p_sexpr PP( (Type *target) );
+Static int incompat PP( (Expr *ex, int num, int prec) );
+Static void outop3 PP( (int breakbefore, char *name) );
+Static void out_ctx PP( (Meaning *ctx, int address) );
+Static int scanfield PP( (Meaning **variants, short *unions,
+ int lev, Meaning *mp, Meaning *field) );
+Static void wrexpr PP( (Expr *ex, int prec) );
+#endif /*PROTO_PEXPR_C*/
+
+/* Declarations from funcs.c */
+#ifdef PROTO_FUNCS_C
+Static Expr *func_abs PV();
+Static Expr *func_addr PV();
+Static Expr *func_iaddress PV();
+Static Expr *func_addtopointer PV();
+Static Expr *checkfilename PP( (Expr *nex) );
+Static Stmt *assignfilename PP( (Expr *fex, Expr *nex) );
+Static Stmt *proc_assign PV();
+Static Stmt *handleopen PP( (int code) );
+Static Stmt *proc_append PV();
+Static Expr *func_arccos PP( (Expr *ex) );
+Static Expr *func_arcsin PP( (Expr *ex) );
+Static Expr *func_arctan PP( (Expr *ex) );
+Static Expr *func_arctanh PP( (Expr *ex) );
+Static Stmt *proc_argv PV();
+Static Expr *func_asr PV();
+Static Expr *func_lsl PV();
+Static Expr *func_lsr PV();
+Static Expr *func_bin PV();
+Static Expr *func_binary PP( (Expr *ex) );
+Static Expr *handle_bitsize PP( (int next) );
+Static Expr *func_bitsize PV();
+Static Expr *func_bitnext PV();
+Static Expr *func_blockread PV();
+Static Expr *func_blockwrite PV();
+Static Stmt *proc_blockread PV();
+Static Stmt *proc_blockwrite PV();
+Static Stmt *proc_bclr PV();
+Static Stmt *proc_bset PV();
+Static Expr *func_bsl PV();
+Static Expr *func_bsr PV();
+Static Expr *func_btst PV();
+Static Expr *func_byteread PV();
+Static Expr *func_bytewrite PV();
+Static Expr *func_byte_offset PV();
+Static Stmt *proc_call PV();
+Static Expr *func_chr PV();
+Static Stmt *proc_close PV();
+Static Expr *func_concat PV();
+Static Expr *func_copy PP( (Expr *ex) );
+Static Expr *func_cos PP( (Expr *ex) );
+Static Expr *func_cosh PP( (Expr *ex) );
+Static Stmt *proc_cycle PV();
+Static Stmt *proc_date PV();
+Static Stmt *proc_dec PV();
+Static Expr *func_dec PV();
+Static Stmt *proc_delete PP( (Expr *ex) );
+Static char *choose_free_func PP( (Expr *ex) );
+Static Stmt *proc_dispose PV();
+Static Expr *func_exp PP( (Expr *ex) );
+Static Expr *func_expo PP( (Expr *ex) );
+Static Expr *iofunc PP( (Expr *ex, int code) );
+Static Expr *func_eof PV();
+Static Expr *func_eoln PV();
+Static Stmt *proc_escape PV();
+Static Stmt *proc_excl PV();
+Static Expr *file_iofunc PP( (int code, long base) );
+Static Expr *func_fcall PV();
+Static Expr *func_filepos PV();
+Static Expr *func_filesize PV();
+Static Stmt *proc_fillchar PV();
+Static Expr *func_sngl PV();
+Static Expr *func_float PV();
+Static Stmt *proc_flush PV();
+Static Expr *func_frac PP( (Expr *ex) );
+Static Stmt *proc_freemem PP( (Expr *ex) );
+Static Stmt *proc_get PV();
+Static Stmt *proc_getmem PP( (Expr *ex) );
+Static Stmt *proc_gotoxy PP( (Expr *ex) );
+Static Expr *handle_vax_hex PP( (Expr *ex, char *fmt, int scale) );
+Static Expr *func_hex PV();
+Static Expr *func_hi PV();
+Static Expr *func_high PV();
+Static Expr *func_hiword PV();
+Static Stmt *proc_inc PV();
+Static Stmt *proc_incl PV();
+Static Stmt *proc_insert PP( (Expr *ex) );
+Static Expr *func_int PV();
+Static Expr *func_uint PV();
+Static Stmt *proc_leave PV();
+Static Expr *func_lo PV();
+Static Expr *func_loophole PV();
+Static Expr *func_lower PV();
+Static Expr *func_loword PV();
+Static Expr *func_ln PP( (Expr *ex) );
+Static Expr *func_log PP( (Expr *ex) );
+Static Expr *func_max PV();
+Static Expr *func_maxavail PP( (Expr *ex) );
+Static Expr *func_maxpos PV();
+Static Expr *func_memavail PP( (Expr *ex) );
+Static Expr *var_mem PV();
+Static Expr *var_memw PV();
+Static Expr *var_meml PV();
+Static Expr *func_min PV();
+Static Stmt *proc_move PP( (Expr *ex) );
+Static Stmt *proc_move_fast PV();
+Static Stmt *proc_new PV();
+Static Expr *func_oct PV();
+Static Expr *func_octal PP( (Expr *ex) );
+Static Expr *func_odd PP( (Expr *ex) );
+Static Stmt *proc_open PV();
+Static Expr *func_ord PV();
+Static Expr *func_ord4 PV();
+Static Stmt *proc_pack PV();
+Static Expr *func_pad PP( (Expr *ex) );
+Static Stmt *proc_page PV();
+Static Expr *func_paramcount PP( (Expr *ex) );
+Static Expr *func_paramstr PP( (Expr *ex) );
+Static Expr *func_pi PV();
+Static Expr *var_port PV();
+Static Expr *var_portw PV();
+Static Expr *func_pos PP( (Expr *ex) );
+Static Expr *func_ptr PP( (Expr *ex) );
+Static Expr *func_position PV();
+Static Expr *func_pred PV();
+Static Stmt *proc_put PV();
+Static Expr *func_pwroften PP( (Expr *ex) );
+Static Stmt *proc_reset PV();
+Static Stmt *proc_rewrite PV();
+Static Expr *makegetchar PP( (Expr *fex) );
+Static Stmt *fixscanf PP( (Stmt *sp, Expr *fex) );
+Static Expr *makefgets PP( (Expr *vex, Expr *lex, Expr *fex) );
+Static Stmt *skipeoln PP( (Expr *fex) );
+Static Stmt *handleread_text PP( (Expr *fex, Expr *var, int isreadln) );
+Static Stmt *handleread_bin PP( (Expr *fex, Expr *var) );
+Static Stmt *proc_read PV();
+Static Stmt *proc_readdir PV();
+Static Stmt *proc_readln PV();
+Static Stmt *proc_readv PV();
+Static Stmt *proc_strread PV();
+Static Expr *func_random PV();
+Static Stmt *proc_randomize PV();
+Static Expr *func_round PP( (Expr *ex) );
+Static Stmt *proc_unpack PV();
+Static Expr *func_uround PP( (Expr *ex) );
+Static Expr *func_scan PV();
+Static Expr *func_scaneq PP( (Expr *ex) );
+Static Expr *func_scanne PP( (Expr *ex) );
+Static Stmt *proc_seek PV();
+Static Expr *func_seekeof PV();
+Static Expr *func_seekeoln PV();
+Static Stmt *proc_setstrlen PV();
+Static Stmt *proc_settextbuf PV();
+Static Expr *func_sin PP( (Expr *ex) );
+Static Expr *func_sinh PP( (Expr *ex) );
+Static Expr *func_sizeof PV();
+Static Expr *func_statusv PV();
+Static Expr *func_str_hp PP( (Expr *ex) );
+Static Stmt *proc_strappend PV();
+Static Stmt *proc_strdelete PV();
+Static Stmt *proc_strinsert PV();
+Static Stmt *proc_strmove PV();
+Static Expr *func_strlen PP( (Expr *ex) );
+Static Expr *func_strltrim PP( (Expr *ex) );
+Static Expr *func_strmax PP( (Expr *ex) );
+Static Expr *func_strpos PP( (Expr *ex) );
+Static Expr *func_strrpt PP( (Expr *ex) );
+Static Expr *func_strrtrim PP( (Expr *ex) );
+Static Expr *func_succ PV();
+Static Expr *func_sqr PV();
+Static Expr *func_sqrt PP( (Expr *ex) );
+Static Expr *func_swap PP( (Expr *ex) );
+Static Expr *func_tan PP( (Expr *ex) );
+Static Expr *func_tanh PP( (Expr *ex) );
+Static Expr *func_trunc PP( (Expr *ex) );
+Static Expr *func_utrunc PP( (Expr *ex) );
+Static Expr *func_uand PV();
+Static Expr *func_udec PV();
+Static Expr *func_unot PV();
+Static Expr *func_uor PV();
+Static Expr *func_upcase PP( (Expr *ex) );
+Static Expr *func_upper PV();
+Static Expr *func_uxor PV();
+Static Expr *func_val_modula PV();
+Static Stmt *proc_val_turbo PV();
+Static Expr *writestrelement PP( (Expr *ex, Expr *wid, Expr *vex, int code,
+ int needboth) );
+Static char *makeenumnames PP( (Type *tp) );
+Static Stmt *handlewrite_text PP( (Expr *fex, Expr *ex, int iswriteln) );
+Static Stmt *handlewrite_bin PP( (Expr *fex, Expr *ex) );
+Static Stmt *proc_write PV();
+Static Stmt *handle_modula_write PP( (char *fmt) );
+Static Stmt *proc_writecard PV();
+Static Stmt *proc_writeint PV();
+Static Stmt *proc_writehex PV();
+Static Stmt *proc_writeoct PV();
+Static Stmt *proc_writereal PV();
+Static Stmt *proc_writedir PV();
+Static Stmt *handlewriteln PP( (int iswriteln) );
+Static Stmt *proc_overprint PV();
+Static Stmt *proc_prompt PV();
+Static Stmt *proc_writeln PV();
+Static Stmt *proc_message PV();
+Static Stmt *proc_writev PV();
+Static Stmt *proc_strwrite PP( (Meaning *mp_x, Stmt *spbase) );
+Static Stmt *proc_str_turbo PV();
+Static Stmt *proc_time PV();
+Static Expr *func_xor PV();
+#endif /*PROTO_FUNCS_C*/
+
+/* Declarations from dir.c */
+#ifdef PROTO_DIR_C
+Static void _setup PP( (char *name, int defn) );
+#endif /*PROTO_DIR_C*/
+
+/* Declarations from hpmods.c */
+#ifdef PROTO_HPMODS_C
+Static Stmt *proc_freadbytes PV();
+Static Stmt *proc_fwritebytes PV();
+Static void setup_sysglobals PV();
+#endif /*PROTO_HPMODS_C*/
+
+/* Declarations from citmods.c */
+#ifdef PROTO_CITMODS_C
+Static Stmt *proc_na_fillbyte PP( (Expr *ex) );
+Static Stmt *proc_na_fill PP( (Expr *ex) );
+Static Stmt *proc_na_move PP( (Expr *ex) );
+Static Stmt *proc_na_exch PP( (Expr *ex) );
+Static Expr *func_na_comp PP( (Expr *ex) );
+Static Expr *func_na_scaneq PP( (Expr *ex) );
+Static Expr *func_na_scanne PP( (Expr *ex) );
+Static Stmt *proc_na_new PP( (Expr *ex) );
+Static Stmt *proc_na_dispose PP( (Expr *ex) );
+Static Stmt *proc_na_alloc PP( (Expr *ex) );
+Static Stmt *proc_na_outeralloc PP( (Expr *ex) );
+Static Stmt *proc_na_free PP( (Expr *ex) );
+Static Expr *func_na_memavail PP( (Expr *ex) );
+Static Expr *func_na_and PP( (Expr *ex) );
+Static Expr *func_na_bic PP( (Expr *ex) );
+Static Expr *func_na_or PP( (Expr *ex) );
+Static Expr *func_na_xor PP( (Expr *ex) );
+Static Expr *func_na_not PP( (Expr *ex) );
+Static Expr *func_na_mask PP( (Expr *ex) );
+Static int check0_31 PP( (Expr *ex) );
+Static Expr *func_na_test PP( (Expr *ex) );
+Static Stmt *proc_na_set PP( (Expr *ex) );
+Static Stmt *proc_na_clear PP( (Expr *ex) );
+Static Expr *func_na_po2 PP( (Expr *ex) );
+Static Expr *func_na_lobits PP( (Expr *ex) );
+Static Expr *func_na_hibits PP( (Expr *ex) );
+Static Expr *func_na_asl PP( (Expr *ex) );
+Static Expr *func_na_lsl PP( (Expr *ex) );
+Static Stmt *proc_na_bfand PP( (Expr *ex) );
+Static Stmt *proc_na_bfbic PP( (Expr *ex) );
+Static Stmt *proc_na_bfor PP( (Expr *ex) );
+Static Stmt *proc_na_bfxor PP( (Expr *ex) );
+Static Expr *func_imin PP( (Expr *ex) );
+Static Expr *func_imax PP( (Expr *ex) );
+Static Expr *func_na_add PP( (Expr *ex) );
+Static Expr *func_na_sub PP( (Expr *ex) );
+Static Stmt *proc_return PV();
+Static Expr *func_charupper PP( (Expr *ex) );
+Static Expr *func_charlower PP( (Expr *ex) );
+Static Expr *func_strint PP( (Expr *ex) );
+Static Expr *func_strint2 PP( (Expr *ex) );
+Static Expr *func_strhex PP( (Expr *ex) );
+Static Expr *func_strreal PP( (Expr *ex) );
+Static Expr *func_strchar PP( (Expr *ex) );
+Static Expr *func_strreadint PP( (Expr *ex) );
+Static Expr *func_strreadreal PP( (Expr *ex) );
+Static Stmt *proc_strappendc PP( (Expr *ex) );
+Static Expr *func_strbegins PP( (Expr *ex) );
+Static Expr *func_strcontains PP( (Expr *ex) );
+Static Expr *func_strsub PP( (Expr *ex) );
+Static Expr *func_strpart PP( (Expr *ex) );
+Static Expr *func_strequal PP( (Expr *ex) );
+Static Expr *func_strcmp PP( (Expr *ex) );
+Static Expr *func_strljust PP( (Expr *ex) );
+Static Expr *func_strrjust PP( (Expr *ex) );
+Static Stmt *proc_strnew PP( (Expr *ex) );
+Static Stmt *proc_strlist_add PP( (Expr *ex) );
+Static Stmt *proc_strlist_append PP( (Expr *ex) );
+Static Stmt *proc_strlist_insert PP( (Expr *ex) );
+Static Stmt *proc_fixfname PP( (Expr *ex) );
+Static Stmt *proc_forcefname PP( (Expr *ex) );
+Static Expr *func_stdin PV();
+Static Expr *func_stdout PV();
+Static Expr *func_stderr PV();
+Static Stmt *proc_m_color PP( (Expr *ex) );
+#endif /*PROTO_CITMODS_C*/
+
+
+/* End. */
+