user friendly tagmm warnings
This commit is contained in:
parent
345b415d55
commit
43c4a5f18b
@ -3400,14 +3400,18 @@ SC_FUNC void check_tagmismatch(int formaltag,int actualtag,int allowcoerce,int e
|
|||||||
{
|
{
|
||||||
if (!matchtag(formaltag,actualtag,allowcoerce)) {
|
if (!matchtag(formaltag,actualtag,allowcoerce)) {
|
||||||
constvalue *tagsym;
|
constvalue *tagsym;
|
||||||
char *formaltag_name,*actualtag_name;
|
char formal_tagname[sNAMEMAX+3]="none (\"_\"),",actual_tagname[sNAMEMAX+2]="none (\"_\")"; /* two extra characters for quotes */
|
||||||
tagsym=find_tag_byval(formaltag);
|
if(formaltag!=0) {
|
||||||
formaltag_name=(tagsym!=NULL) ? tagsym->name : "-unknown-";
|
tagsym=find_tag_byval(formaltag);
|
||||||
tagsym=find_tag_byval(actualtag);
|
sprintf(formal_tagname,"\"%s\",", (tagsym!=NULL) ? tagsym->name : "-unknown-");
|
||||||
actualtag_name=(tagsym!=NULL) ? tagsym->name : "-unknown-";
|
} /* if */
|
||||||
|
if(actualtag!=0) {
|
||||||
|
tagsym=find_tag_byval(actualtag);
|
||||||
|
sprintf(actual_tagname,"\"%s\"",(tagsym!=NULL) ? tagsym->name : "-unknown-");
|
||||||
|
} /* if */
|
||||||
if(errline>0)
|
if(errline>0)
|
||||||
errorset(sSETPOS,errline);
|
errorset(sSETPOS,errline);
|
||||||
error(213,formaltag_name,actualtag_name); /* tag mismatch */
|
error(213,"tag",formal_tagname,actual_tagname); /* tag mismatch */
|
||||||
if(errline>0)
|
if(errline>0)
|
||||||
errorset(sSETPOS,-1);
|
errorset(sSETPOS,-1);
|
||||||
} /* if */
|
} /* if */
|
||||||
@ -3418,19 +3422,34 @@ SC_FUNC void check_tagmismatch_multiple(int formaltags[],int numtags,int actualt
|
|||||||
if (!checktag(formaltags, numtags, actualtag)) {
|
if (!checktag(formaltags, numtags, actualtag)) {
|
||||||
int i;
|
int i;
|
||||||
constvalue *tagsym;
|
constvalue *tagsym;
|
||||||
char formal_tagnames[sLINEMAX],*actual_tagname;
|
char formal_tagnames[sLINEMAX]="",actual_tagname[sNAMEMAX+2]="none (\"_\")";
|
||||||
formal_tagnames[0]='\0';
|
int notag_allowed=FALSE,add_comma=FALSE;
|
||||||
for (i=0; i<numtags; i++) {
|
for (i=0; i<numtags; i++) {
|
||||||
tagsym=find_tag_byval(formaltags[i]);
|
if(formaltags[i]!=0) {
|
||||||
strlcat(formal_tagnames,(tagsym!=NULL) ? tagsym->name : "-unknown-",sizeof(formal_tagnames));
|
if((i+1)==numtags && add_comma==TRUE && notag_allowed==FALSE)
|
||||||
if((i+1)!=numtags)
|
strlcat(formal_tagnames,", or ",sizeof(formal_tagnames));
|
||||||
strlcat(formal_tagnames,"\" or \"",sizeof(formal_tagnames));
|
else if(add_comma)
|
||||||
|
strlcat(formal_tagnames,", ",sizeof(formal_tagnames));
|
||||||
|
add_comma=TRUE;
|
||||||
|
tagsym=find_tag_byval(formaltags[i]);
|
||||||
|
sprintf(formal_tagnames,"%s\"%s\"",formal_tagnames,(tagsym!=NULL) ? tagsym->name : "-unknown-");
|
||||||
|
} else {
|
||||||
|
notag_allowed=TRUE;
|
||||||
|
} /* if */
|
||||||
} /* for */
|
} /* for */
|
||||||
tagsym=find_tag_byval(actualtag);
|
if(notag_allowed==TRUE) {
|
||||||
actual_tagname=(tagsym!=NULL) ? tagsym->name : "-unknown-";
|
if(add_comma==TRUE)
|
||||||
|
strlcat(formal_tagnames,", or ",sizeof(formal_tagnames));
|
||||||
|
strlcat(formal_tagnames,"none (\"_\")",sizeof(formal_tagnames));
|
||||||
|
} /* if */
|
||||||
|
strlcat(formal_tagnames,(numtags==1) ? "," : ";",sizeof(formal_tagnames));
|
||||||
|
if(actualtag!=0) {
|
||||||
|
tagsym=find_tag_byval(actualtag);
|
||||||
|
sprintf(actual_tagname,"\"%s\"",(tagsym!=NULL) ? tagsym->name : "-unknown-");
|
||||||
|
} /* if */
|
||||||
if(errline>0)
|
if(errline>0)
|
||||||
errorset(sSETPOS,errline);
|
errorset(sSETPOS,errline);
|
||||||
error(213,formal_tagnames,actual_tagname); /* tag mismatch */
|
error(213,(numtags==1) ? "tag" : "tags",formal_tagnames,actual_tagname); /* tag mismatch */
|
||||||
if(errline>0)
|
if(errline>0)
|
||||||
errorset(sSETPOS,-1);
|
errorset(sSETPOS,-1);
|
||||||
} /* if */
|
} /* if */
|
||||||
|
@ -167,7 +167,7 @@ static char *warnmsg[] = {
|
|||||||
/*210*/ "possible use of symbol before initialization: \"%s\"\n",
|
/*210*/ "possible use of symbol before initialization: \"%s\"\n",
|
||||||
/*211*/ "possibly unintended assignment\n",
|
/*211*/ "possibly unintended assignment\n",
|
||||||
/*212*/ "possibly unintended bitwise operation\n",
|
/*212*/ "possibly unintended bitwise operation\n",
|
||||||
/*213*/ "tag mismatch: expected tag(s) \"%s\", but found \"%s\"\n",
|
/*213*/ "tag mismatch: expected %s %s but found %s\n",
|
||||||
/*214*/ "possibly a \"const\" array argument was intended: \"%s\"\n",
|
/*214*/ "possibly a \"const\" array argument was intended: \"%s\"\n",
|
||||||
/*215*/ "expression has no effect\n",
|
/*215*/ "expression has no effect\n",
|
||||||
/*216*/ "nested comment\n",
|
/*216*/ "nested comment\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user