📄 error.c
字号:
break;
case ERR_INTERP:
sprintf(buf,"%s",(char *)err->data);
break;
case ERR_BFADDR:
sprintf(buf,"Cannot take address of bit field");
break;
case ERR_MODCONS:
sprintf(buf,"Cannot modify a const val");
break;
case ERR_SZTYPE:
sprintf(buf,"Type expected in sizeof");
break;
case ERR_FUNCRETVAL:
sprintf(buf,"Function should return a value");
errlvl = 1;
break;
case ERR_STATICSYMUNUSED:
sprintf(buf,"Static variable '%s' is declared but never used",(char *)err->data);
errlvl = 1;
break;
case ERR_SYMUNUSED:
sprintf(buf,"Variable '%s' is declared but never used",(char *)err->data);
errlvl = 1;
break;
case ERR_FUNCUNUSED:
sprintf(buf,"Static function '%s' is declared but never used",(char *)err->data);
errlvl = 1;
break;
case ERR_SYMUNDEF:
sprintf(buf,"Possible use of '%s' before assignment",(char *)err->data);
errlvl = 1;
break;
case ERR_SYMASSIGNED:
sprintf(buf,"Variable '%s' is possibly assigned a value which is never used",(char *)err->data);
errlvl = 1;
break;
case ERR_NONPORT:
sprintf(buf,"Nonportable pointer conversion");
errlvl = 1;
break;
case ERR_UNREACHABLE:
sprintf(buf,"Unreachable code");
errlvl = 1;
break;
case ERR_CODENONE:
sprintf(buf,"Code has no effect");
errlvl = 1;
break;
case ERR_BADEQUATE:
sprintf(buf,"Possible incorrect assignment");
errlvl = 1;
break;
case ERR_NOANDREG:
sprintf(buf,"Invalid '&' on register var '%s'",(char *)err->data);
break;
case ERR_NOCONTINUE:
sprintf(buf,"Continue not allowed");
break;
case ERR_DUPLABEL:
sprintf(buf,"Duplicate label '%s'",(char *)err->data);
break;
case ERR_NOFUNCARRAY:
sprintf(buf,"Function cannot return array");
break;
case ERR_NOVOIDRET:
sprintf(buf,"Return type is void");
errlvl = 1;
break;
case ERR_ZEROSTORAGE:
sprintf(buf,"No memory allocated for '%s'",(char *)err->data);
errlvl = 1;
break;
case ERR_ZEROPTR:
sprintf(buf,"Illegal use of void pointer");
break;
case ERR_SHORTPOINTER:
sprintf(buf,"Dangerous pointer cast");
errlvl = 1;
break;
case ERR_NOSTATICFUNC:
sprintf(buf,"Nonexistant static func '%s'",(char *)err->data);
break;
case ERR_UNUSEDLABEL:
errlvl = 1;
sprintf(buf,"Unused label '%s'",(char *)err->data);
break;
case ERR_NOPROTO:
sprintf(buf,"Call to function '%s' with no prototype",(char *)err->data);
errlvl = prm_cplusplus==0;
break;
case ERR_LOSTCONV:
sprintf(buf,"Conversion may truncate significant digits");
errlvl = 1;
break;
case ERR_UNDEFLABEL:
sprintf(buf,"Undefined label '%s'",(char *)err->data);
break;
case ERR_ILLREGISTER:
sprintf(buf,"Illegal register var '%s'",(char *)err->data);
errlvl = 1;
break;
case ERR_SUPERAND:
sprintf(buf,"Possible superfluous &");
errlvl = 1;
break;
case ERR_NODECLARE:
sprintf(buf,"Declaration not allowed here");
break;
case ERR_NOMAIN:
sprintf(buf,"Illegal call to main() from within program");
break;
case ERR_NOREF:
sprintf(buf,"Illegal use of reference operator");
break;
case ERR_CANTREF:
sprintf(buf,"Cannot define a pointer or reference to a reference");
break;
case ERR_TEMPUSED:
sprintf(buf,"Temporary used for parameter %s",(char *)err->data);
errlvl = 1;
break;
case ERR_REFMUSTINIT:
sprintf(buf,"Reference variable '%s' must be initialized",(char *)err->data);
break;
case ERR_TEMPINIT:
sprintf(buf,"Temporary used to initialize %s",(char *)err->data);
errlvl = 1;
break;
case ERR_REFLVALUE:
sprintf(buf,"Reference initialization needs lvalue");
break;
case ERR_REFNOCONS:
sprintf(buf,"Reference member '%s' in a class with no constructors",(char *)err->data);
break;
case ERR_MISSINGDEFAULT:
sprintf(buf,"Default missing after parameter '%s'",(char *)err->data);
break;
case ERR_AMBIGFUNC:
sprintf(buf,"Ambiguity between %s",(char *)err->data);
break;
case ERR_NOLOCALDEFAULT:
sprintf(buf,"Local variables may not be used as parameter defaults");
break;
case ERR_CPPMISMATCH:
sprintf(buf,"Cannot cast %s",(char *)err->data);
break;
case ERR_NOOVERMAIN:
sprintf(buf,"Cannot overload 'main'",(char *)err->data);
break;
case ERR_SWITCHINT:
sprintf(buf,"Switch argument must be of integral type");
break;
case ERR_NOFUNCMATCH:
sprintf(buf,"Could not find a match for '%s'",(char *)err->data);
break;
/*
case ERR_PREDEFSTRUCT:
sprintf(buf,"'%s' must be a predefined class or struct",(char *)err->data);
break;
case ERR_LOCALCLASS:
sprintf(buf,"Local class functions not supported",(char *)err->data);
break;
case ERR_PUREDECL:
sprintf(buf,"Illegal pure declaration syntzx of '%s'",(char *)err->data);
break;
case ERR_BADESTRUCT:
sprintf(buf,"Destructor for class '%s' expected",(char *)err->data);
break;
case ERR_TYPECONSTRUCT:
sprintf(buf,"Constructor/destructor must be untyped");
break;
case ERR_NOTYPEQUAL:
sprintf(buf,"Variable '%s' cannot have a type qualifier",(char *)err->data);
break;
case ERR_NOTACLASS:
sprintf(buf,"Variable '%s' is not a class instance",(char *)err->data);
break;
*/ case ERR_SIZE:
if (err->data)
sprintf(buf,"Size of '%s' is unknown or zero",(char *)err->data);
else
sprintf(buf,"Size is unknown or zero");
break;
case ERR_NEVERSTRUCT:
sprintf(buf,"Structure '%s' is undefined",(char *)err->data);
errlvl = 1;
break;
case ERR_LONGLONG:
sprintf(buf,"long long int type not supported, defaulting to long int");
errlvl = 1;
break;
case ERR_UPDOWN:
sprintf(buf,"Startup/rundown function '%s' is unknown or not a function",(char *)err->data);
break;
case ERR_INTBITFIELDS:
sprintf(buf,"Bit fields must be signed or unsigned int");
break;
case ERR_COMMENTMATCH:
sprintf(buf,"File ended with comment in progress");
break;
case ERR_PASCAL_NO_ELLIPSE:
sprintf(buf,"Ellipse (...) not allowed in pascal declaration");
break;
case ERR_PASCAL_NO_INT:
sprintf(buf,"_int keyword not allowed in pascal declaration");
break;
case ERR_SUSPICIOUS:
sprintf(buf,"Suspicious pointer conversion");
errlvl = 1;
break;
case ERR_NOFUNCSTRUCT:
sprintf(buf,"Function declaration not allowed here");
break;
case ERR_STRINGTOOBIG:
sprintf(buf,"String constant too long");
break;
case ERR_CONSTTOOLARGE:
sprintf(buf,"Numeric constant is too large");
break;
case ERR_MULTIPLEINIT:
sprintf(buf,"Multiple initialization for '%s'",(char *)err->data);
break;
case ERR_INVALIDSTRING:
sprintf(buf,"Invalid string operation");
break;
case ERR_AMODEEXPECT:
sprintf(buf,"Assembler: Address mode expected");
break;
case ERR_ASCALE:
sprintf(buf,"Assembler: Valid scale factor expected");
break;
case ERR_AINVINDXMODE:
sprintf(buf,"Assembler: Invalid indexing");
break;
case ERR_AILLADDRESS:
sprintf(buf,"Assembler: Invalid address mode");
break;
case ERR_ATOOMANYSPECS:
sprintf(buf,"Assembler: Too many specifiers");
break;
case ERR_ATOOMANYSEGS:
sprintf(buf,"Assembler: Too many segments");
break;
case ERR_AINVOP:
sprintf(buf,"Assembler: Invalid opcode");
break;
case ERR_AINVSIZE:
sprintf(buf,"Assembler: Size mismatch");
break;
case ERR_AUSELEA:
sprintf(buf,"Assembler: Must use LEA to take the address of a local variable");
break;
case ERR_ALABEXPECT:
sprintf(buf,"Assembler: Label expected");
break;
case ERR_ANEEDFP:
sprintf(buf,"Assembler: Floating point register expected");
break;
default:
sprintf(buf,"Error #%d",err->errornumber);
break;
}
return errlvl;
}
void lferror(void)
/*
* sticck an error in the list file
*/
{
char buf[100];
while(curerr) {
int errlvl = printerr(buf,curerr);
if (!errlvl) {
if (prm_listfile)
fprintf(listFile,"**** ERROR: %s\n",buf);
}
else if (prm_warning) {
if (prm_listfile)
fprintf(listFile,"** WARNING: %s\n",buf);
}
curerr = curerr->link;
}
}
void basicskim(int *skimlist)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -