From beba34dc223aa0dcf3e5f696966c5e8408b022c3 Mon Sep 17 00:00:00 2001 From: Robert de Bath Date: Sat, 24 Jan 2004 16:27:32 +0100 Subject: Import Dev86src-0.16.15.tar.gz --- as/Makefile | 2 + as/as.c | 6 ++- as/chk | 4 +- as/errors.c | 163 ++++++++++++++++++++++++++++++------------------------------ as/errors.h | 162 +++++++++++++++++++++++++++++------------------------------ 5 files changed, 172 insertions(+), 165 deletions(-) (limited to 'as') diff --git a/as/Makefile b/as/Makefile index dec98d1..60aa952 100644 --- a/as/Makefile +++ b/as/Makefile @@ -33,6 +33,8 @@ clean realclean clobber: .c.o: $(CC) $(CFLAGS) -c $< +$(OBJS): const.h errors.h + as.o: const.h type.h byteord.h macro.h file.h flag.h globvar.h assemble.o: const.h type.h address.h globvar.h opcode.h scan.h error.o: const.h type.h diff --git a/as/as.c b/as/as.c index d592b0b..c5fee7e 100644 --- a/as/as.c +++ b/as/as.c @@ -28,6 +28,7 @@ PRIVATE struct sym_s *hid_spt[SPTSIZ]; /* hash table */ PRIVATE char * binfilename = 0; PRIVATE char * objfilename = 0; +PRIVATE int keep_bad_output = 0; FORWARD void initp1 P((void)); FORWARD int my_creat P((char *name, char *message)); @@ -85,7 +86,7 @@ PUBLIC void finishup() /* If an output binary is in error remove it */ close(binfil); binfil=0; close(objfil); objfil=0; - if (toterr != 0) + if (toterr != 0 && !keep_bad_output) { if(binfilename) unlink(binfilename); if(objfilename) unlink(objfilename); @@ -280,6 +281,9 @@ char **argv; if( flag_state ) as_warn.semaphore = -1; else as_warn.semaphore = 0; break; + case 'k': + keep_bad_output = 1; + break; default: usage(); /* bad option */ } diff --git a/as/chk b/as/chk index 007c750..44f316a 100755 --- a/as/chk +++ b/as/chk @@ -1,8 +1,8 @@ compile() { - # /lib/elksemu ./as86 -3 "$@" - ./as86 -3 "$@" + # /lib/elksemu ./as86 -3 -k "$@" + ./as86 -3 -k "$@" } for i in `ls asm/*.asm` diff --git a/as/errors.c b/as/errors.c index 0f2558a..4a78a7f 100644 --- a/as/errors.c +++ b/as/errors.c @@ -1,107 +1,108 @@ #include "syshead.h" #include "const.h" +#include "errors.h" /* Error codes. */ /* Syntax errors. */ -PUBLIC char * COMEXP = "comma expected"; -PUBLIC char * DELEXP = "delimiter expected"; -PUBLIC char * FACEXP = "factor expected"; -PUBLIC char * IREGEXP = "index register expected"; -PUBLIC char * LABEXP = "label expected"; -PUBLIC char * LPEXP = "left parentheses expected"; -PUBLIC char * OPEXP = "opcode expected"; -PUBLIC char * RBEXP = "right bracket expected"; -PUBLIC char * REGEXP = "register expected"; -PUBLIC char * RPEXP = "right parentheses expected"; -PUBLIC char * SPEXP = "space expected"; +PUBLIC char COMEXP[] = "comma expected"; +PUBLIC char DELEXP[] = "delimiter expected"; +PUBLIC char FACEXP[] = "factor expected"; +PUBLIC char IREGEXP[] = "index register expected"; +PUBLIC char LABEXP[] = "label expected"; +PUBLIC char LPEXP[] = "left parentheses expected"; +PUBLIC char OPEXP[] = "opcode expected"; +PUBLIC char RBEXP[] = "right bracket expected"; +PUBLIC char REGEXP[] = "register expected"; +PUBLIC char RPEXP[] = "right parentheses expected"; +PUBLIC char SPEXP[] = "space expected"; /* Expression errors. */ -PUBLIC char * ABSREQ = "absolute expression required"; -PUBLIC char * NONIMPREQ = "non-imported expression required"; -PUBLIC char * RELBAD = "relocation impossible"; +PUBLIC char ABSREQ[] = "absolute expression required"; +PUBLIC char NONIMPREQ[] = "non-imported expression required"; +PUBLIC char RELBAD[] = "relocation impossible"; /* Label errors. */ -PUBLIC char * ILLAB = "illegal label"; -PUBLIC char * MACUID = "MACRO used as identifier"; -PUBLIC char * MISLAB = "missing label"; -PUBLIC char * MNUID = "opcode used as identifier"; -PUBLIC char * REGUID = "register used as identifier"; -PUBLIC char * RELAB = "redefined label"; -PUBLIC char * UNBLAB = "unbound label"; -PUBLIC char * UNLAB = "undefined label"; -PUBLIC char * VARLAB = "variable used as label"; +PUBLIC char ILLAB[] = "illegal label"; +PUBLIC char MACUID[] = "MACRO used as identifier"; +PUBLIC char MISLAB[] = "missing label"; +PUBLIC char MNUID[] = "opcode used as identifier"; +PUBLIC char REGUID[] = "register used as identifier"; +PUBLIC char RELAB[] = "redefined label"; +PUBLIC char UNBLAB[] = "unbound label"; +PUBLIC char UNLAB[] = "undefined label"; +PUBLIC char VARLAB[] = "variable used as label"; /* Addressing errors. */ -PUBLIC char * ABOUNDS = "address out of bounds"; -PUBLIC char * DBOUNDS = "data out of bounds"; -PUBLIC char * ILLMOD = "illegal address mode"; -PUBLIC char * ILLREG = "illegal register"; +PUBLIC char ABOUNDS[] = "address out of bounds"; +PUBLIC char DBOUNDS[] = "data out of bounds"; +PUBLIC char ILLMOD[] = "illegal address mode"; +PUBLIC char ILLREG[] = "illegal register"; /* Control structure errors. */ -PUBLIC char * ELSEBAD = "no matching IF"; -PUBLIC char * ENDBBAD = "no matching BLOCK"; -PUBLIC char * EOFBLOCK = "end of file in BLOCK"; -PUBLIC char * EOFIF = "end of file in IF"; -PUBLIC char * EOFLC = "location counter was undefined at end"; -PUBLIC char * EOFMAC = "end of file in MACRO"; -PUBLIC char * FAILERR = "user-generated error"; +PUBLIC char ELSEBAD[] = "no matching IF"; +PUBLIC char ENDBBAD[] = "no matching BLOCK"; +PUBLIC char EOFBLOCK[] = "end of file in BLOCK"; +PUBLIC char EOFIF[] = "end of file in IF"; +PUBLIC char EOFLC[] = "location counter was undefined at end"; +PUBLIC char EOFMAC[] = "end of file in MACRO"; +PUBLIC char FAILERR[] = "user-generated error"; /* Overflow errors. */ -PUBLIC char * BLOCKOV = "BLOCK stack overflow"; -PUBLIC char * BWRAP = "binary file wrap-around"; -PUBLIC char * COUNTOV = "counter overflow"; -PUBLIC char * COUNTUN = "counter underflow"; -PUBLIC char * GETOV = "GET stack overflow"; -PUBLIC char * IFOV = "IF stack overflow"; +PUBLIC char BLOCKOV[] = "BLOCK stack overflow"; +PUBLIC char BWRAP[] = "binary file wrap-around"; +PUBLIC char COUNTOV[] = "counter overflow"; +PUBLIC char COUNTUN[] = "counter underflow"; +PUBLIC char GETOV[] = "GET stack overflow"; +PUBLIC char IFOV[] = "IF stack overflow"; -PUBLIC char * LINLONG = "line too long"; -PUBLIC char * MACOV = "MACRO stack overflow"; -PUBLIC char * OBJSYMOV = "object symbol table overflow"; -PUBLIC char * OWRITE = "program overwrite"; -PUBLIC char * PAROV = "parameter table overflow"; -PUBLIC char * SYMOV = "symbol table overflow"; -PUBLIC char * SYMOUTOV = "output symbol table overflow"; +PUBLIC char LINLONG[] = "line too long"; +PUBLIC char MACOV[] = "MACRO stack overflow"; +PUBLIC char OBJSYMOV[] = "object symbol table overflow"; +PUBLIC char OWRITE[] = "program overwrite"; +PUBLIC char PAROV[] = "parameter table overflow"; +PUBLIC char SYMOV[] = "symbol table overflow"; +PUBLIC char SYMOUTOV[] = "output symbol table overflow"; /* I/O errors. */ -PUBLIC char * OBJOUT = "error writing object file"; +PUBLIC char OBJOUT[] = "error writing object file"; /* Miscellaneous errors. */ -PUBLIC char * AL_AX_EAX_EXP = "al ax or eax expected"; -PUBLIC char * CTLINS = "control character in string"; -PUBLIC char * FURTHER = "futher errors suppressed"; -PUBLIC char * ILL_IMM_MODE = "illegal immediate mode"; -PUBLIC char * ILL_IND_TO_IND = "illegal indirect to indirect"; -PUBLIC char * ILL_IND = "illegal indirection"; -PUBLIC char * ILL_IND_PTR = "illegal indirection from previous 'ptr'"; -PUBLIC char * ILL_SCALE = "illegal scale"; -PUBLIC char * ILL_SECTION = "illegal section"; -PUBLIC char * ILL_SEG_REG = "illegal segment register"; -PUBLIC char * ILL_SOURCE_EA = "illegal source effective address"; -PUBLIC char * ILL_SIZE = "illegal size"; -PUBLIC char * IMM_REQ = "immediate expression expected"; -PUBLIC char * INDEX_REG_EXP = "index register expected"; -PUBLIC char * IND_REQ = "indirect expression required"; -PUBLIC char * MISMATCHED_SIZE = "mismatched size"; -PUBLIC char * NOIMPORT = "no imports with binary file output"; -PUBLIC char * REENTER = "multiple ENTER pseudo-ops"; -PUBLIC char * REL_REQ = "relative expression required"; -PUBLIC char * REPEATED_DISPL = "repeated displacement"; -PUBLIC char * SEGREL = "segment or relocatability redefined"; -PUBLIC char * SEG_REG_REQ = "segment register required"; -PUBLIC char * SIZE_UNK = "size unknown"; -PUBLIC char * UNKNOWN_ESCAPE_SEQUENCE = "unknown escape sequence"; +PUBLIC char AL_AX_EAX_EXP[] = "al ax or eax expected"; +PUBLIC char CTLINS[] = "control character in string"; +PUBLIC char FURTHER[] = "futher errors suppressed"; +PUBLIC char ILL_IMM_MODE[] = "illegal immediate mode"; +PUBLIC char ILL_IND_TO_IND[] = "illegal indirect to indirect"; +PUBLIC char ILL_IND[] = "illegal indirection"; +PUBLIC char ILL_IND_PTR[] = "illegal indirection from previous 'ptr'"; +PUBLIC char ILL_SCALE[] = "illegal scale"; +PUBLIC char ILL_SECTION[] = "illegal section"; +PUBLIC char ILL_SEG_REG[] = "illegal segment register"; +PUBLIC char ILL_SOURCE_EA[] = "illegal source effective address"; +PUBLIC char ILL_SIZE[] = "illegal size"; +PUBLIC char IMM_REQ[] = "immediate expression expected"; +PUBLIC char INDEX_REG_EXP[] = "index register expected"; +PUBLIC char IND_REQ[] = "indirect expression required"; +PUBLIC char MISMATCHED_SIZE[] = "mismatched size"; +PUBLIC char NOIMPORT[] = "no imports with binary file output"; +PUBLIC char REENTER[] = "multiple ENTER pseudo-ops"; +PUBLIC char REL_REQ[] = "relative expression required"; +PUBLIC char REPEATED_DISPL[] = "repeated displacement"; +PUBLIC char SEGREL[] = "segment or relocatability redefined"; +PUBLIC char SEG_REG_REQ[] = "segment register required"; +PUBLIC char SIZE_UNK[] = "size unknown"; +PUBLIC char UNKNOWN_ESCAPE_SEQUENCE[] = "unknown escape sequence"; -PUBLIC char * FP_REG_REQ = "FP register required"; -PUBLIC char * FP_REG_NOT_ALLOWED = "FP register not allowed"; -PUBLIC char * ILL_FP_REG = "illegal FP register"; -PUBLIC char * ILL_FP_REG_PAIR = "illegal FP register pair"; -PUBLIC char * JUNK_AFTER_OPERANDS = "junk after operands"; +PUBLIC char FP_REG_REQ[] = "FP register required"; +PUBLIC char FP_REG_NOT_ALLOWED[] = "FP register not allowed"; +PUBLIC char ILL_FP_REG[] = "illegal FP register"; +PUBLIC char ILL_FP_REG_PAIR[] = "illegal FP register pair"; +PUBLIC char JUNK_AFTER_OPERANDS[] = "junk after operands"; -PUBLIC char * ALREADY = "already defined"; -PUBLIC char * UNSTABLE_LABEL = "label moved in last pass add -O?"; +PUBLIC char ALREADY[] = "already defined"; +PUBLIC char UNSTABLE_LABEL[] = "label moved in last pass add -O?"; /* Warnings. */ -PUBLIC char * CPUCLASH = "instruction illegal for current cpu"; -PUBLIC char * SHORTB = "short branch would do"; +PUBLIC char CPUCLASH[] = "instruction illegal for current cpu"; +PUBLIC char SHORTB[] = "short branch would do"; diff --git a/as/errors.h b/as/errors.h index 28e1a58..ad1b57f 100644 --- a/as/errors.h +++ b/as/errors.h @@ -1,105 +1,105 @@ /* Error codes. */ /* Syntax errors. */ -EXTERN char * COMEXP; /* "comma expected" */ -EXTERN char * DELEXP; /* "delimiter expected" */ -EXTERN char * FACEXP; /* "factor expected" */ -EXTERN char * IREGEXP; /* "index register expected" */ -EXTERN char * LABEXP; /* "label expected" */ -EXTERN char * LPEXP; /* "left parentheses expected" */ -EXTERN char * OPEXP; /* "opcode expected" */ -EXTERN char * RBEXP; /* "right bracket expected" */ -EXTERN char * REGEXP; /* "register expected" */ -EXTERN char * RPEXP; /* "right parentheses expected" */ -EXTERN char * SPEXP; /* "space expected" */ +EXTERN char COMEXP[]; /* "comma expected" */ +EXTERN char DELEXP[]; /* "delimiter expected" */ +EXTERN char FACEXP[]; /* "factor expected" */ +EXTERN char IREGEXP[]; /* "index register expected" */ +EXTERN char LABEXP[]; /* "label expected" */ +EXTERN char LPEXP[]; /* "left parentheses expected" */ +EXTERN char OPEXP[]; /* "opcode expected" */ +EXTERN char RBEXP[]; /* "right bracket expected" */ +EXTERN char REGEXP[]; /* "register expected" */ +EXTERN char RPEXP[]; /* "right parentheses expected" */ +EXTERN char SPEXP[]; /* "space expected" */ /* Expression errors. */ -EXTERN char * ABSREQ; /* "absolute expression required" */ -EXTERN char * NONIMPREQ; /* "non-imported expression required" */ -EXTERN char * RELBAD; /* "relocation impossible" */ +EXTERN char ABSREQ[]; /* "absolute expression required" */ +EXTERN char NONIMPREQ[]; /* "non-imported expression required" */ +EXTERN char RELBAD[]; /* "relocation impossible" */ /* Label errors. */ -EXTERN char * ILLAB; /* "illegal label" */ -EXTERN char * MACUID; /* "MACRO used as identifier" */ -EXTERN char * MISLAB; /* "missing label" */ -EXTERN char * MNUID; /* "opcode used as identifier" */ -EXTERN char * REGUID; /* "register used as identifier" */ -EXTERN char * RELAB; /* "redefined label" */ -EXTERN char * UNBLAB; /* "unbound label" */ -EXTERN char * UNLAB; /* "undefined label" */ -EXTERN char * VARLAB; /* "variable used as label" */ +EXTERN char ILLAB[]; /* "illegal label" */ +EXTERN char MACUID[]; /* "MACRO used as identifier" */ +EXTERN char MISLAB[]; /* "missing label" */ +EXTERN char MNUID[]; /* "opcode used as identifier" */ +EXTERN char REGUID[]; /* "register used as identifier" */ +EXTERN char RELAB[]; /* "redefined label" */ +EXTERN char UNBLAB[]; /* "unbound label" */ +EXTERN char UNLAB[]; /* "undefined label" */ +EXTERN char VARLAB[]; /* "variable used as label" */ /* Addressing errors. */ -EXTERN char * ABOUNDS; /* "address out of bounds" */ -EXTERN char * DBOUNDS; /* "data out of bounds" */ -EXTERN char * ILLMOD; /* "illegal address mode" */ -EXTERN char * ILLREG; /* "illegal register" */ +EXTERN char ABOUNDS[]; /* "address out of bounds" */ +EXTERN char DBOUNDS[]; /* "data out of bounds" */ +EXTERN char ILLMOD[]; /* "illegal address mode" */ +EXTERN char ILLREG[]; /* "illegal register" */ /* Control structure errors. */ -EXTERN char * ELSEBAD; /* "no matching IF" */ +EXTERN char ELSEBAD[]; /* "no matching IF" */ #define ELSEIFBAD ELSEBAD -EXTERN char * ENDBBAD; /* "no matching BLOCK" */ +EXTERN char ENDBBAD[]; /* "no matching BLOCK" */ #define ENDIFBAD ELSEBAD -EXTERN char * EOFBLOCK; /* "end of file in BLOCK" */ -EXTERN char * EOFIF; /* "end of file in IF" */ -EXTERN char * EOFLC; /* "location counter was undefined at end" */ -EXTERN char * EOFMAC; /* "end of file in MACRO" */ -EXTERN char * FAILERR; /* "user-generated error" */ +EXTERN char EOFBLOCK[]; /* "end of file in BLOCK" */ +EXTERN char EOFIF[]; /* "end of file in IF" */ +EXTERN char EOFLC[]; /* "location counter was undefined at end" */ +EXTERN char EOFMAC[]; /* "end of file in MACRO" */ +EXTERN char FAILERR[]; /* "user-generated error" */ /* Overflow errors. */ -EXTERN char * BLOCKOV; /* "BLOCK stack overflow" */ -EXTERN char * BWRAP; /* "binary file wrap-around" */ -EXTERN char * COUNTOV; /* "counter overflow" */ -EXTERN char * COUNTUN; /* "counter underflow" */ -EXTERN char * GETOV; /* "GET stack overflow" */ -EXTERN char * IFOV; /* "IF stack overflow" */ +EXTERN char BLOCKOV[]; /* "BLOCK stack overflow" */ +EXTERN char BWRAP[]; /* "binary file wrap-around" */ +EXTERN char COUNTOV[]; /* "counter overflow" */ +EXTERN char COUNTUN[]; /* "counter underflow" */ +EXTERN char GETOV[]; /* "GET stack overflow" */ +EXTERN char IFOV[]; /* "IF stack overflow" */ -EXTERN char * LINLONG; /* "line too long" */ -EXTERN char * MACOV; /* "MACRO stack overflow" */ -EXTERN char * OBJSYMOV; /* "object symbol table overflow" */ -EXTERN char * OWRITE; /* "program overwrite" */ -EXTERN char * PAROV; /* "parameter table overflow" */ -EXTERN char * SYMOV; /* "symbol table overflow" */ -EXTERN char * SYMOUTOV; /* "output symbol table overflow" */ +EXTERN char LINLONG[]; /* "line too long" */ +EXTERN char MACOV[]; /* "MACRO stack overflow" */ +EXTERN char OBJSYMOV[]; /* "object symbol table overflow" */ +EXTERN char OWRITE[]; /* "program overwrite" */ +EXTERN char PAROV[]; /* "parameter table overflow" */ +EXTERN char SYMOV[]; /* "symbol table overflow" */ +EXTERN char SYMOUTOV[]; /* "output symbol table overflow" */ /* I/O errors. */ -EXTERN char * OBJOUT; /* "error writing object file" */ +EXTERN char OBJOUT[]; /* "error writing object file" */ /* Miscellaneous errors. */ -EXTERN char * AL_AX_EAX_EXP; /* "al ax or eax expected" */ -EXTERN char * CTLINS; /* "control character in string" */ -EXTERN char * FURTHER; /* "futher errors suppressed" */ -EXTERN char * ILL_IMM_MODE; /* "illegal immediate mode" */ -EXTERN char * ILL_IND_TO_IND; /* "illegal indirect to indirect" */ -EXTERN char * ILL_IND; /* "illegal indirection" */ -EXTERN char * ILL_IND_PTR; /* "illegal indirection from previous 'ptr'" */ -EXTERN char * ILL_SCALE; /* "illegal scale" */ -EXTERN char * ILL_SECTION; /* "illegal section" */ -EXTERN char * ILL_SEG_REG; /* "illegal segment register" */ -EXTERN char * ILL_SOURCE_EA; /* "illegal source effective address" */ -EXTERN char * ILL_SIZE; /* "illegal size" */ -EXTERN char * IMM_REQ; /* "immediate expression expected" */ -EXTERN char * INDEX_REG_EXP; /* "index register expected" */ -EXTERN char * IND_REQ; /* "indirect expression required" */ -EXTERN char * MISMATCHED_SIZE; /* "mismatched size" */ -EXTERN char * NOIMPORT; /* "no imports with binary file output" */ -EXTERN char * REENTER; /* "multiple ENTER pseudo-ops" */ -EXTERN char * REL_REQ; /* "relative expression required" */ -EXTERN char * REPEATED_DISPL; /* "repeated displacement" */ -EXTERN char * SEGREL; /* "segment or relocatability redefined" */ -EXTERN char * SEG_REG_REQ; /* "segment register required" */ -EXTERN char * SIZE_UNK; /* "size unknown" */ -EXTERN char * UNKNOWN_ESCAPE_SEQUENCE; /* "unknown escape sequence" */ +EXTERN char AL_AX_EAX_EXP[]; /* "al ax or eax expected" */ +EXTERN char CTLINS[]; /* "control character in string" */ +EXTERN char FURTHER[]; /* "futher errors suppressed" */ +EXTERN char ILL_IMM_MODE[]; /* "illegal immediate mode" */ +EXTERN char ILL_IND_TO_IND[]; /* "illegal indirect to indirect" */ +EXTERN char ILL_IND[]; /* "illegal indirection" */ +EXTERN char ILL_IND_PTR[]; /* "illegal indirection from previous 'ptr'" */ +EXTERN char ILL_SCALE[]; /* "illegal scale" */ +EXTERN char ILL_SECTION[]; /* "illegal section" */ +EXTERN char ILL_SEG_REG[]; /* "illegal segment register" */ +EXTERN char ILL_SOURCE_EA[]; /* "illegal source effective address" */ +EXTERN char ILL_SIZE[]; /* "illegal size" */ +EXTERN char IMM_REQ[]; /* "immediate expression expected" */ +EXTERN char INDEX_REG_EXP[]; /* "index register expected" */ +EXTERN char IND_REQ[]; /* "indirect expression required" */ +EXTERN char MISMATCHED_SIZE[]; /* "mismatched size" */ +EXTERN char NOIMPORT[]; /* "no imports with binary file output" */ +EXTERN char REENTER[]; /* "multiple ENTER pseudo-ops" */ +EXTERN char REL_REQ[]; /* "relative expression required" */ +EXTERN char REPEATED_DISPL[]; /* "repeated displacement" */ +EXTERN char SEGREL[]; /* "segment or relocatability redefined" */ +EXTERN char SEG_REG_REQ[]; /* "segment register required" */ +EXTERN char SIZE_UNK[]; /* "size unknown" */ +EXTERN char UNKNOWN_ESCAPE_SEQUENCE[]; /* "unknown escape sequence" */ -EXTERN char * FP_REG_REQ; /* "FP register required" */ -EXTERN char * FP_REG_NOT_ALLOWED; /* "FP register not allowed" */ -EXTERN char * ILL_FP_REG; /* "illegal FP register" */ -EXTERN char * ILL_FP_REG_PAIR; /* "illegal FP register pair" */ -EXTERN char * JUNK_AFTER_OPERANDS; /* "junk after operands" */ +EXTERN char FP_REG_REQ[]; /* "FP register required" */ +EXTERN char FP_REG_NOT_ALLOWED[]; /* "FP register not allowed" */ +EXTERN char ILL_FP_REG[]; /* "illegal FP register" */ +EXTERN char ILL_FP_REG_PAIR[]; /* "illegal FP register pair" */ +EXTERN char JUNK_AFTER_OPERANDS[]; /* "junk after operands" */ -EXTERN char * ALREADY; /* "already defined" */ -EXTERN char * UNSTABLE_LABEL; /* "label moved in last pass add -O?" */ +EXTERN char ALREADY[]; /* "already defined" */ +EXTERN char UNSTABLE_LABEL[]; /* "label moved in last pass add -O?" */ /* Warnings. */ -EXTERN char * CPUCLASH; /* "instruction illegal for current cpu" */ -EXTERN char * SHORTB; /* "short branch would do" */ +EXTERN char CPUCLASH[]; /* "instruction illegal for current cpu" */ +EXTERN char SHORTB[]; /* "short branch would do" */ -- cgit v1.2.1