Cut down some clang warnings

Edit C code to reduce warnings from clang.  Most warnings are for
implicit declarations of functions, but some warnings want me to add
parentheses or curly braces, or to cast arguments for printf().

Make a few other changes, like declaring float_cst() in h/con_float to
be static, and using C99 bool in ego/ra/makeitems.c and
ego/share/makecldef.c.  Such changes don't silence warnings; I make
such changes while I silence warnings in the same file.  In
float_cst(), rename parameter `str` to `float_str`, so it doesn't
share a name with the global variable `str`.

Remove `const` from `newmodule(const char *)` in mach/proto/as to
silence a warning.  I wrongly added the `const` in d347207.

For warnings about implicit declarations of functions, the fix is to
declare the function before calling it.  For example, my OpenBSD
system needs <sys/wait.h> to declare wait().

In util/int, add "whatever.h" to declare more functions.  Remove old
declarations from "mem.h", to prefer the newer declarations of the
same functions in "data.h" and "stack.h".
This commit is contained in:
George Koehler 2019-10-23 16:06:36 -04:00
parent 8bb395b147
commit 36f16b0cb8
43 changed files with 189 additions and 127 deletions

View file

@ -97,8 +97,7 @@ int sz;
#include <ctype.h> #include <ctype.h>
#include <flt_arith.h> #include <flt_arith.h>
int float_cst(str, sz, buf) char *str, *buf; static int float_cst(const char *float_str, int sz, char *buf)
int sz;
{ {
int overflow = 0; int overflow = 0;
flt_arith e; flt_arith e;
@ -107,7 +106,7 @@ int sz;
{ {
return 1; return 1;
} }
flt_str2flt(str, &e); flt_str2flt(float_str, &e);
#ifdef IEEEFLOAT #ifdef IEEEFLOAT
if (sz == 4) if (sz == 4)
{ {
@ -115,7 +114,7 @@ int sz;
#ifdef PDPFLOAT #ifdef PDPFLOAT
e.flt_exp += 129; e.flt_exp += 129;
#else #else
e.flt_exp += 127; e.flt_exp += 127;
#endif #endif
if (e.flt_mantissa.flt_h_32 == 0) if (e.flt_mantissa.flt_h_32 == 0)
e.flt_exp = 0; e.flt_exp = 0;

View file

@ -25,7 +25,7 @@ Something very wrong here!
#define SYNTAX_68020 1 #define SYNTAX_68020 1
#endif #endif
/* #define FANCY_MODES 1 /* #define FANCY_MODES 1 */
/* On the M68020, there are some real fancy addressing modes. /* On the M68020, there are some real fancy addressing modes.
Their use makes the code a bit shorter, but also much slower. Their use makes the code a bit shorter, but also much slower.
The FANCY_MODES #define enables the use of these addressing The FANCY_MODES #define enables the use of these addressing

View file

@ -106,7 +106,7 @@ extern int curr_token;
int yyparse(void); int yyparse(void);
/* comm4.c */ /* comm4.c */
void stop(void); void stop(void);
void newmodule(const char *); void newmodule(char *);
/* comm5.c */ /* comm5.c */
int yylex(void); int yylex(void);
void putval(int); void putval(int);

View file

@ -35,6 +35,10 @@ void stop(void) {
exit(nerrors != 0); exit(nerrors != 0);
} }
static void stop_on_signal(int sig) {
stop();
}
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
@ -54,9 +58,9 @@ main(int argc, char **argv)
} }
progname = *argv++; argc--; progname = *argv++; argc--;
for (p = sigs; i = *p++; ) for (p = sigs; (i = *p++) != 0; )
if (signal(i, SIG_IGN) != SIG_IGN) if (signal(i, SIG_IGN) != SIG_IGN)
signal(i, stop); signal(i, stop_on_signal);
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
p = argv[i]; p = argv[i];
if (*p++ != '-') if (*p++ != '-')
@ -433,7 +437,7 @@ pass_23(int n)
} }
void void
newmodule(const char *s) newmodule(char *s)
{ {
static char nmbuf[STRINGMAX]; static char nmbuf[STRINGMAX];

View file

@ -78,7 +78,7 @@ int flt_cmp(flt_arith *e1, flt_arith *e2);
* digits. They may not both be missing. The decimal point, the e and the * digits. They may not both be missing. The decimal point, the e and the
* exponent may be missing. * exponent may be missing.
*/ */
void flt_str2flt(char *s, flt_arith *e); void flt_str2flt(const char *s, flt_arith *e);
/** Converts the number indicated by `e` into a string, in a scientific /** Converts the number indicated by `e` into a string, in a scientific
* notation acceptable for EM. The result is stored in `buf`. At most * notation acceptable for EM. The result is stored in `buf`. At most
* `bufsize` characters are stored. The maximum length needed is * `bufsize` characters are stored. The maximum length needed is

View file

@ -216,7 +216,7 @@ static void add_exponent(register flt_arith *e, int exp)
flt_status = status; flt_status = status;
} }
void flt_str2flt(char *s, flt_arith *e) void flt_str2flt(const char *s, flt_arith *e)
{ {
register int c; register int c;
int dotseen = 0; int dotseen = 0;

View file

@ -4,6 +4,7 @@
*/ */
/* $Id$ */ /* $Id$ */
#include <unistd.h>
#include "system.h" #include "system.h"
int int

View file

@ -64,6 +64,9 @@ typedef struct
/* Own routines */ /* Own routines */
/* files.h */
extern void rmtemps(void);
/* rmach.c */ /* rmach.c */
extern void setlist(char*); extern void setlist(char*);
@ -80,6 +83,7 @@ extern void fatal(const char*, ...);
extern void vprint(const char*, ...); extern void vprint(const char*, ...);
extern void fuerror(const char*, ...); extern void fuerror(const char*, ...);
extern void werror(const char*, ...); extern void werror(const char*, ...);
extern void error(const char*, ...);
extern void quit(int); extern void quit(int);
extern char* keeps(const char*); extern char* keeps(const char*);
#define throws(str) free(str) #define throws(str) free(str)

View file

@ -169,7 +169,7 @@ static void varinit(void)
register char* envstr; register char* envstr;
extern char* em_dir; extern char* em_dir;
if (envstr = getenv("ACKDIR")) if ((envstr = getenv("ACKDIR")) != NULL)
{ {
em_dir = keeps(envstr); em_dir = keeps(envstr);
} }

View file

@ -22,10 +22,12 @@ FILE *dmach ;
int offset ; int offset ;
void readm(); void start(const char *) ;
void stop(int) ;
void readm(void) ;
main(argc,argv) char **argv ; { int main(int argc, char **argv) {
register i ; int i ;
start(argv[1]) ; start(argv[1]) ;
for ( i=2 ; i<argc ; i++ ) { for ( i=2 ; i<argc ; i++ ) {
@ -36,7 +38,7 @@ main(argc,argv) char **argv ; {
return 0 ; return 0 ;
} }
start(dir) char *dir ; { void start(const char *dir) {
tail= dname ; tail= dname ;
while ( *dir ) { while ( *dir ) {
*tail++ = *dir ++ ; *tail++ = *dir ++ ;
@ -53,14 +55,14 @@ start(dir) char *dir ; {
fprintf(intab,"char intable[] = {\n") ; fprintf(intab,"char intable[] = {\n") ;
} }
stop(filled) { void stop(int filled) {
fprintf(dmach,"\t{\"\",\t-1\t}\n} ;\n") ; fprintf(dmach,"\t{\"\",\t-1\t}\n} ;\n") ;
if ( !filled ) fprintf(intab,"\t0\n") ; if ( !filled ) fprintf(intab,"\t0\n") ;
fprintf(intab,"\n} ;\n") ; fprintf(intab,"\n} ;\n") ;
fclose(dmach); fclose(intab) ; fclose(dmach); fclose(intab) ;
} }
FILE *do_open(file) char *file ; { FILE *do_open(const char *file) {
FILE *fd; FILE *fd;
strcpy(tail,file) ; strcpy(tail,file) ;
@ -100,7 +102,7 @@ readm() {
fprintf(stderr,"warning: non-ascii in %s\n",fname) ; fprintf(stderr,"warning: non-ascii in %s\n",fname) ;
fprintf(intab,"%4d,",token) ; fprintf(intab,"%4d,",token) ;
} else { } else {
fprintf(intab," 0,",token) ; fprintf(intab," 0,") ;
break ; break ;
} }
} else if ( isprint(token) ) { } else if ( isprint(token) ) {

View file

@ -4,6 +4,7 @@
* *
*/ */
#include <sys/wait.h>
#include <fcntl.h> #include <fcntl.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>

View file

@ -113,12 +113,12 @@ static void try(list_elem *f_scan, const char *suffix) {
*/ */
register trf *sneak ; register trf *sneak ;
sneak= trafo ; sneak= trafo ;
while( sneak=sneak->t_next ) { while( (sneak=sneak->t_next) ) {
sneak->t_scan=YES ; sneak->t_scan=YES ;
} }
scan_found() ; scan_found() ;
sneak= trafo ; sneak= trafo ;
while( sneak=sneak->t_next ) { while( (sneak=sneak->t_next) ) {
sneak->t_scan=NO ; sneak->t_scan=NO ;
} }
return ; return ;

View file

@ -317,7 +317,8 @@ static growstring scanvars(const char* line)
{ {
case A_VAR: case A_VAR:
gr_add(&name, 0); gr_add(&name, 0);
if (tr = getvar(gr_start(name))) tr = getvar(gr_start(name));
if (tr != NULL)
{ {
while (*tr) while (*tr)
{ {
@ -333,7 +334,8 @@ static growstring scanvars(const char* line)
break; break;
case C_VAR: case C_VAR:
gr_add(&name, 0); gr_add(&name, 0);
if (tr = getvar(gr_start(name))) tr = getvar(gr_start(name));
if (tr != NULL)
{ {
while (*tr) while (*tr)
{ {

View file

@ -50,7 +50,6 @@ int setfiles(trf *);
void disc_files(trf *); void disc_files(trf *);
void disc_inputs(trf *); void disc_inputs(trf *);
void rmfile(path *); void rmfile(path *);
void rmtemps(void);
void add_input(path *, trf *); void add_input(path *, trf *);
/* run.c */ /* run.c */

View file

@ -785,7 +785,7 @@ static void verbose(void)
fprintf(stderr, "Sets %d(%d)\n", nmachsets, MAXSETS); fprintf(stderr, "Sets %d(%d)\n", nmachsets, MAXSETS);
fprintf(stderr, "Tokeninstances %d(%d)\n", narinstance, MAXINSTANCE); fprintf(stderr, "Tokeninstances %d(%d)\n", narinstance, MAXINSTANCE);
fprintf(stderr, "Strings %d(%d)\n", ncodestrings, MAXSTRINGS); fprintf(stderr, "Strings %d(%d)\n", ncodestrings, MAXSTRINGS);
fprintf(stderr, "Enodes %d(%d)\n", lastnode - nodes, MAXNODES); fprintf(stderr, "Enodes %d(%d)\n", (int)(lastnode - nodes), MAXNODES);
fprintf(stderr, "Patbytes %d(%d)\n", npatbytes, MAXPATTERN); fprintf(stderr, "Patbytes %d(%d)\n", npatbytes, MAXPATTERN);
} }

View file

@ -4,6 +4,7 @@
optimizer itself one day ... optimizer itself one day ...
*/ */
#include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <stdbool.h> #include <stdbool.h>
@ -121,14 +122,15 @@ cleanup()
} }
/*VARARGS1*/ /*VARARGS1*/
static void static void fatal(const char *s, ...)
fatal(s, s2) char* s;
char* s2;
{ {
/* A fatal error occurred; exit gracefully */ /* A fatal error occurred; exit gracefully */
va_list ap;
va_start(ap, s);
fprint(STDERR, "%s: ", prog_name); fprint(STDERR, "%s: ", prog_name);
fprint(STDERR, s, s2); doprnt(STDERR, s, ap);
fprint(STDERR, "\n"); fprint(STDERR, "\n");
cleanup(); cleanup();
sys_stop(S_EXIT); sys_stop(S_EXIT);

View file

@ -4,6 +4,7 @@
* See the copyright notice in the ACK home directory, in the file "Copyright". * See the copyright notice in the ACK home directory, in the file "Copyright".
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -20,16 +21,20 @@
*/ */
#define TRUE 1 void error(const char *s)
#define FALSE 0 {
fprintf(stderr,"%s\n",s);
exit(-1);
}
convert(mnemfile,itemfile)
FILE *mnemfile, *itemfile; void convert(FILE *mnemfile, FILE *itemfile)
{ {
char mnem1[20], mnem2[20],def[20],itemtype[20]; char mnem1[20], mnem2[20],def[20],itemtype[20];
int newcl,opc,index; int opc,index;
bool newcl;
newcl = TRUE; newcl = true;
printf("struct item_descr itemtab[] = {\n"); printf("struct item_descr itemtab[] = {\n");
for (;;) { for (;;) {
fscanf(mnemfile,"%19s%19s%d",def,mnem1,&opc); fscanf(mnemfile,"%19s%19s%d",def,mnem1,&opc);
@ -47,28 +52,17 @@ convert(mnemfile,itemfile)
* it has no type. * it has no type.
*/ */
printf("{NO_ITEM,0}, /* %s */\n", mnem1); printf("{NO_ITEM,0}, /* %s */\n", mnem1);
newcl = FALSE; newcl = false;
} else { } else {
printf("{%s,%d}, /* %s */\n",itemtype,index, mnem1); printf("{%s,%d}, /* %s */\n",itemtype,index, mnem1);
newcl = TRUE; newcl = true;
} }
} }
printf("};\n"); printf("};\n");
} }
int main(int argc, char *argv[])
error(s)
char *s;
{
fprintf(stderr,"%s\n",s);
exit(-1);
}
main(argc,argv)
int argc;
char *argv[];
{ {
FILE *f1,*f2; FILE *f1,*f2;

View file

@ -136,7 +136,7 @@ STATIC lset getlset(void *(*p)(short))
int id; int id;
s = Lempty_set(); s = Lempty_set();
while (id = getshort()) { while ((id = getshort()) != 0) {
Ladd( (*p) (id), &s); Ladd( (*p) (id), &s);
} }
return s; return s;

View file

@ -4,6 +4,7 @@
* See the copyright notice in the ACK home directory, in the file "Copyright". * See the copyright notice in the ACK home directory, in the file "Copyright".
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -23,16 +24,20 @@
*/ */
#define TRUE 1 void error(const char *s)
#define FALSE 0 {
fprintf(stderr,"%s\n",s);
exit(-1);
}
convert(mnemfile,classfile)
FILE *mnemfile, *classfile; void convert(FILE *mnemfile, FILE *classfile)
{ {
char mnem1[10], mnem2[10],def[10]; char mnem1[10], mnem2[10],def[10];
int src,res,newcl,opc; int src,res,opc;
bool newcl;
newcl = TRUE; newcl = true;
printf("struct class classtab[] = {\n"); printf("struct class classtab[] = {\n");
printf("\tNOCLASS,\tNOCLASS,\n"); printf("\tNOCLASS,\tNOCLASS,\n");
/* EM mnemonics start at 1, arrays in C at 0 */ /* EM mnemonics start at 1, arrays in C at 0 */
@ -52,29 +57,18 @@ convert(mnemfile,classfile)
* it has no class. * it has no class.
*/ */
printf("\tNOCLASS,\tNOCLASS,\n"); printf("\tNOCLASS,\tNOCLASS,\n");
newcl = FALSE; newcl = false;
} else { } else {
printf("\tCLASS%d,\t\tCLASS%d,\n",src,res); printf("\tCLASS%d,\t\tCLASS%d,\n",src,res);
/* print a line like "CLASS8, CLASS1," */ /* print a line like "CLASS8, CLASS1," */
newcl = TRUE; newcl = true;
} }
} }
printf("};\n"); printf("};\n");
} }
int main(int argc, char *argv[])
error(s)
char *s;
{
fprintf(stderr,"%s\n",s);
exit(-1);
}
main(argc,argv)
int argc;
char *argv[];
{ {
FILE *f1,*f2; FILE *f1,*f2;

View file

@ -9,5 +9,10 @@ sed '
s/.*"/#define / s/.*"/#define /
' '
echo
echo 'void init_wmsg(void);'
echo 'void do_warn(int, int, const char *);'
echo 'void set_wmask(int);'
echo
echo '#define warning(n) do_warn((n), __LINE__, __FILE__)' echo '#define warning(n) do_warn((n), __LINE__, __FILE__)'

View file

@ -9,6 +9,7 @@
#include "memdirect.h" #include "memdirect.h"
#include "proctab.h" #include "proctab.h"
#include "alloc.h" #include "alloc.h"
#include "whatever.h"
PRIVATE ptr TC; PRIVATE ptr TC;
PRIVATE void do_pr_instr(unsigned int); PRIVATE void do_pr_instr(unsigned int);

View file

@ -22,6 +22,7 @@
#include "rsb.h" #include "rsb.h"
#include "io.h" #include "io.h"
#include "linfil.h" #include "linfil.h"
#include "whatever.h"
extern int running; /* from main.c */ extern int running; /* from main.c */
@ -32,13 +33,9 @@ ptr FIL;
PRIVATE void index_jump(size), range_check(size), search_jump(size); PRIVATE void index_jump(size), range_check(size), search_jump(size);
PRIVATE void gto(ptr); PRIVATE void gto(ptr);
void putLIN(long);
void putFIL(ptr);
#define asp(l) newSP(SP + arg_f(l)) #define asp(l) newSP(SP + arg_f(l))
extern void moncall(void);
/** ASP f: Adjust the stack pointer by f */ /** ASP f: Adjust the stack pointer by f */
void DoASP(register long l) void DoASP(register long l)
{ {

View file

@ -19,12 +19,12 @@
#include "fra.h" #include "fra.h"
#include "rsb.h" #include "rsb.h"
#include "linfil.h" #include "linfil.h"
#include "whatever.h"
extern int running; /* from main.c */ extern int running; /* from main.c */
/* Forward declarations */ /* Forward declarations */
PRIVATE void lfr(size), ret(size); PRIVATE void lfr(size), ret(size);
void call(long, int);
/** CAI -: Call procedure (procedure identifier on stack) */ /** CAI -: Call procedure (procedure identifier on stack) */
void DoCAI(void) /* proc identifier on top of stack */ void DoCAI(void) /* proc identifier on top of stack */

View file

@ -21,10 +21,12 @@
#include "alloc.h" #include "alloc.h"
#include "warn.h" #include "warn.h"
#include "mem.h" #include "mem.h"
#include "m_sigtrp.h"
#include "io.h" #include "io.h"
#include "shadow.h" #include "shadow.h"
#include "trap.h" #include "trap.h"
#include "read.h" #include "read.h"
#include "whatever.h"
/**************************************************************** /****************************************************************

View file

@ -16,6 +16,7 @@
#include "warn.h" #include "warn.h"
#include "log.h" #include "log.h"
#include "linfil.h" #include "linfil.h"
#include "whatever.h"
extern int running; /* from main.c */ extern int running; /* from main.c */
extern char *prog_name; /* from main.c */ extern char *prog_name; /* from main.c */

View file

@ -2,3 +2,7 @@
#define LOGGING 1 /* Includes logging when defined */ #define LOGGING 1 /* Includes logging when defined */
#ifdef LOGGING
/* warn.c */
void warningcont(int);
#endif /* LOGGING */

View file

@ -9,6 +9,7 @@
#include "global.h" #include "global.h"
#include "mem.h" #include "mem.h"
#include "warn.h" #include "warn.h"
#include "whatever.h"
#ifdef WANT_SGTTY #ifdef WANT_SGTTY
#include <sgtty.h> #include <sgtty.h>
@ -42,9 +43,7 @@
* (0 for success, -1 for failure) * * (0 for success, -1 for failure) *
***********************************************************************/ ***********************************************************************/
int do_ioctl(fd, req, addr) int do_ioctl(int fd, int req, ptr addr)
int fd, req;
ptr addr;
{ {
register long e; register long e;
#ifdef WANT_SGTTY #ifdef WANT_SGTTY

View file

@ -12,6 +12,7 @@
#include "trap.h" #include "trap.h"
#include "m_sigtrp.h" #include "m_sigtrp.h"
#include "io.h" #include "io.h"
#include "whatever.h"
/*************************** SIGTRP ************************************* /*************************** SIGTRP *************************************
* The monitor call "sigtrp()" is handled by "do_sigtrp()". The first * * The monitor call "sigtrp()" is handled by "do_sigtrp()". The first *

View file

@ -23,6 +23,7 @@
#include "opcode.h" #include "opcode.h"
#include "m_sigtrp.h" #include "m_sigtrp.h"
#include "rsb.h" #include "rsb.h"
#include "whatever.h"
char mess_file[64] = "int.mess"; /* name of message file */ char mess_file[64] = "int.mess"; /* name of message file */
@ -39,12 +40,6 @@ extern long inr; /* from log.c */
PRIVATE char *dflt_av[] = {"e.out", 0}; /* default arguments */ PRIVATE char *dflt_av[] = {"e.out", 0}; /* default arguments */
/* External definitions - too lazy to create a header file for each. */
extern void init(int , char **);
extern void disassemble(void);
extern void tally(void);
extern void out_tally(void);
/** Check dynamically that the interpreter can run on the target machine. */ /** Check dynamically that the interpreter can run on the target machine. */
static void check_requirements(char *name) static void check_requirements(char *name)
{ {

View file

@ -4,6 +4,7 @@
/* $Id$ */ /* $Id$ */
#include "data.h"
#include "stack.h" #include "stack.h"
/******** Memory address & location defines ********/ /******** Memory address & location defines ********/
@ -65,12 +66,3 @@
#define st_inc(n) newSP(SP - (n)) /* stack grows */ #define st_inc(n) newSP(SP - (n)) /* stack grows */
#define st_dec(n) newSP(SP + (n)) /* stack shrinks */ #define st_dec(n) newSP(SP + (n)) /* stack shrinks */
/******** Function return types ********/
extern ptr st_ldip(), dt_ldip();
extern ptr st_lddp(), dt_lddp(), dppop();
extern long st_lds(), st_ldsw(), dt_lds(), dt_ldsw(), spop(), swpop(), wpop();
extern unsigned long st_ldu(), st_lduw(), dt_ldu(), dt_lduw(), upop(), uwpop();

View file

@ -5,16 +5,24 @@
/* $Id$ */ /* $Id$ */
#include "sysidf.h" #include "sysidf.h"
#include "io.h"
#include "log.h" #include "log.h"
#include "alloc.h" #include "alloc.h"
#include "shadow.h" #include "shadow.h"
#include "m_sigtrp.h"
#include "monstruct.h"
#include "whatever.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/times.h> #include <sys/times.h>
#include <sys/wait.h>
#include <errno.h> #include <errno.h>
#include <signal.h>
#include <string.h>
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
#include <utime.h>
extern int running; /* from main.c */ extern int running; /* from main.c */
extern int fd_limit; /* from io.c */ extern int fd_limit; /* from io.c */
@ -1091,7 +1099,7 @@ PRIVATE int vec(n1, n2, addr, vecvec)
/* copy the elements */ /* copy the elements */
for ( cp1 = buf[n1], n_ent = 0, p = addr; for ( cp1 = buf[n1], n_ent = 0, p = addr;
ldp = mem_lddp(p); (ldp = mem_lddp(p)) != 0;
p += psize, n_ent++ p += psize, n_ent++
) { ) {
if (!savestr(n2, ldp)) { if (!savestr(n2, ldp)) {
@ -1099,7 +1107,7 @@ PRIVATE int vec(n1, n2, addr, vecvec)
} }
(*vecvec)[n_ent] = cp1; (*vecvec)[n_ent] = cp1;
cp2 = buf[n2]; cp2 = buf[n2];
while (*cp1++ = *cp2++) { while ((*cp1++ = *cp2++) != '\0') {
/* nothing */ /* nothing */
} }
} }
@ -1107,9 +1115,7 @@ PRIVATE int vec(n1, n2, addr, vecvec)
return 1; return 1;
} }
int memfault(addr, length) int memfault(ptr addr, size length)
ptr addr;
size length;
{ {
/* centralizes (almost) all memory access tests in MON */ /* centralizes (almost) all memory access tests in MON */
if (!is_in_mem(addr, length)) { if (!is_in_mem(addr, length)) {
@ -1119,17 +1125,14 @@ int memfault(addr, length)
return 0; return 0;
} }
efault(wrn) void efault(int wrn /* warning number */)
int wrn; /* warning number */
{ {
warning(wrn); warning(wrn);
errno = 14; /* EFAULT */ errno = 14; /* EFAULT */
} }
einval(wrn) void einval(int wrn /* warning number */)
int wrn; /* warning number */
{ {
warning(wrn); warning(wrn);
errno = 22; /* EINVAL */ errno = 22; /* EINVAL */
} }

View file

@ -9,6 +9,7 @@
#include "global.h" #include "global.h"
#include "mem.h" #include "mem.h"
#include "monstruct.h" #include "monstruct.h"
#include "whatever.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -42,9 +43,7 @@ PRIVATE mem_stfld(addr, offset, length, val)
mem_stn(addr + offset, val, length); mem_stn(addr + offset, val, length);
} }
int stat2mem(addr, statb) int stat2mem(ptr addr, struct stat *statb)
ptr addr;
struct stat *statb;
{ {
if (memfault(addr, V7st_sz)) if (memfault(addr, V7st_sz))
return 0; return 0;
@ -62,9 +61,7 @@ int stat2mem(addr, statb)
return 1; return 1;
} }
int timeb2mem(addr, timebb) int timeb2mem(ptr addr, struct timeb *timebb)
ptr addr;
struct timeb *timebb;
{ {
if (memfault(addr, V7tb_sz)) if (memfault(addr, V7tb_sz))
return 0; return 0;
@ -75,9 +72,7 @@ int timeb2mem(addr, timebb)
return 1; return 1;
} }
int tms2mem(addr, tmsb) int tms2mem(ptr addr, struct tms *tmsb)
ptr addr;
struct tms *tmsb;
{ {
if (memfault(addr, V7tms_sz)) if (memfault(addr, V7tms_sz))
return 0; return 0;

View file

@ -12,6 +12,8 @@
/* $Id$ */ /* $Id$ */
#include "global.h" /* ptr */
/* struct stat */ /* struct stat */
#define V7st_dev 0L, 2L /* short */ #define V7st_dev 0L, 2L /* short */
#define V7st_ino 2L, 2L /* unsigned short */ #define V7st_ino 2L, 2L /* unsigned short */
@ -67,3 +69,10 @@
#define V7t_lnextc 5L, 1L /* char */ #define V7t_lnextc 5L, 1L /* char */
#define V7t_sz_ltch 6L #define V7t_sz_ltch 6L
struct stat;
struct timeb;
struct tms;
int stat2mem(ptr, struct stat *);
int timeb2mem(ptr, struct timeb *);
int tms2mem(ptr, struct tms *);

View file

@ -14,6 +14,7 @@
#include "segment.h" #include "segment.h"
#include "text.h" #include "text.h"
#include "warn.h" #include "warn.h"
#include "whatever.h"
/* offsets to be added to a local base */ /* offsets to be added to a local base */
int rsb_rsbcode; int rsb_rsbcode;

View file

@ -9,6 +9,7 @@
#include "global.h" #include "global.h"
#include "linfil.h" #include "linfil.h"
#include "alloc.h" #include "alloc.h"
#include "whatever.h"
struct line_tally struct line_tally
{ /* one for each line */ { /* one for each line */

View file

@ -18,6 +18,7 @@
#include "linfil.h" #include "linfil.h"
#include "rsb.h" #include "rsb.h"
#include "fra.h" #include "fra.h"
#include "whatever.h"
extern jmp_buf trapbuf; /* from main.c */ extern jmp_buf trapbuf; /* from main.c */

View file

@ -94,7 +94,7 @@ PRIVATE long count_wrn(int nr)
PRIVATE int latest_warning_printed; /* set if ... */ PRIVATE int latest_warning_printed; /* set if ... */
/*ARGSUSED*/ /*ARGSUSED*/
void do_warn(int nr, int L, char *F) void do_warn(int nr, int L, const char *F)
{ {
latest_warning_printed = 0; latest_warning_printed = 0;
if (nr < WMSG) { if (nr < WMSG) {

43
util/int/whatever.h Normal file
View file

@ -0,0 +1,43 @@
/* Copyright (c) 2019 ACK Project.
* See the copyright notice in the ACK home directory,
* in the file "Copyright".
*
* Created on: 2019-10-23
*
*/
#ifndef WHATEVER_H_
#define WHATEVER_H_
#include "global.h" /* ptr, size */
/*
* This header is for _whatever_ isn't in another header.
*/
/* disassemble.c */
void disassemble(void);
/* do_misc.c */
void putLIN(long);
void putFIL(ptr);
/* do_proc.c */
void call(long, int);
/* init.c */
void init(int , char **);
/* m_ioctl.c */
int do_ioctl(int, int, ptr);
/* moncalls.c */
void moncall(void);
int memfault(ptr, size);
void efault(int);
void einval(int);
/* tally.c */
void tally(void);
void out_tally(void);
#endif /* WHATEVER_H_ */

View file

@ -11,7 +11,7 @@ g/^#/d
.r tokendefs .r tokendefs
a a
enterkeyw() { void enterkeyw(void) {
register symbol *sy_p; register symbol *sy_p;
. .

View file

@ -38,8 +38,23 @@ extern int maxtokensize;
extern int nprocargs, maxprocargs; extern int nprocargs, maxprocargs;
extern int use_tes; extern int use_tes;
extern void error(const char* s, ...); /* genenerated files */
extern void enterkeyw(void);
extern int yyparse(void);
/* emlookup.c */
extern void initemhash(void);
/* error.c */
extern void fatal(const char* s, ...); extern void fatal(const char* s, ...);
extern void error(const char* s, ...);
extern int tabovf(char *string); extern int tabovf(char *string);
extern int strlookup(char *str);
/* output.c */
extern void errorexit(void); extern void errorexit(void);
extern void initio(void);
extern void finishio(void);
extern void statistics(void);
/* strlookup.c */
extern int strlookup(char *str);

View file

@ -174,11 +174,12 @@ iocc_t descr_iocc(char *ident)
default: default:
assert(0); assert(0);
case TYPINT: case TYPINT:
if (tp->tk_att[i].ta_type != -1) if (tp->tk_att[i].ta_type != -1) {
if (tp->tk_att[i].ta_type == -2) if (tp->tk_att[i].ta_type == -2)
arexp[i] = iextoaddr(arexp[i]); arexp[i] = iextoaddr(arexp[i]);
else else
typerr++; typerr++;
}
break; break;
case TYPBOOL: case TYPBOOL:
typerr++; typerr++;

View file

@ -12,16 +12,10 @@ static char rcsid[] = "$Id$";
#include "hall.h" #include "hall.h"
#include "expr.h" #include "expr.h"
#include "extern.h" #include "extern.h"
#include "lookup.h"
char *filename; char *filename;
extern void enterkeyw(void);
extern void initio(void);
extern void initemhash(void);
extern void finishio(void);
extern void statistics(void);
extern int yyparse(void);
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
extern int nerrors; extern int nerrors;

View file

@ -349,7 +349,7 @@ void printnodes(void)
printf("};\n\nshort lastind = %d;\n\nexpr_t enodes[] = {\n",prevind); printf("};\n\nshort lastind = %d;\n\nexpr_t enodes[] = {\n",prevind);
for (p=nodes;p<lastnode;p++) for (p=nodes;p<lastnode;p++)
printf("/* %3d */\t{%3d,%6u,%6u},\n", printf("/* %3d */\t{%3d,%6u,%6u},\n",
p-nodes,p->ex_operator,p->ex_lnode,p->ex_rnode); (int)(p-nodes),p->ex_operator,p->ex_lnode,p->ex_rnode);
printf("};\n\niarg_t iargs[%d];\n", (maxpatlen>0 ? maxpatlen : 1)); printf("};\n\niarg_t iargs[%d];\n", (maxpatlen>0 ? maxpatlen : 1));
if (patid[0]) if (patid[0])
printf("static char rcsid[] = %s;\n",patid); printf("static char rcsid[] = %s;\n",patid);