src/ioc: fix numerous warnings appearing on MSVC 12.0 / Windows (64bit)

This commit is contained in:
Ralph Lange
2014-06-04 15:56:51 +02:00
parent f8b746287e
commit 5754dc136e
13 changed files with 57 additions and 50 deletions

View File

@@ -70,6 +70,7 @@ store_integer_value(const chfPluginArgDef *opt, char *user, epicsInt32 val)
const chfPluginEnumType *emap;
double *dval;
char *sval;
int ret;
char buff[22]; /* 2^64 = 1.8e+19, so 20 digits plus sign max */
#ifdef DEBUG_CHF
@@ -96,7 +97,8 @@ store_integer_value(const chfPluginArgDef *opt, char *user, epicsInt32 val)
break;
case chfPluginArgString:
sval = user + opt->offset;
if (sprintf(buff, "%ld", (long)val) > opt->size - 1) {
ret = sprintf(buff, "%ld", (long)val);
if (ret < 0 || (unsigned) ret > opt->size - 1) {
return -1;
}
strncpy(sval, buff, opt->size-1);
@@ -154,7 +156,7 @@ static int store_boolean_value(const chfPluginArgDef *opt, char *user, int val)
break;
case chfPluginArgString:
sval = user + opt->offset;
if ((val ? 4 : 5) > opt->size - 1) {
if ((unsigned) (val ? 4 : 5) > opt->size - 1) {
return -1;
}
strncpy(sval, val ? "true" : "false", opt->size - 1);
@@ -178,7 +180,7 @@ store_double_value(const chfPluginArgDef *opt, void *vuser, double val)
epicsInt32 *ival;
double *dval;
char *sval;
int i;
unsigned int i;
#ifdef DEBUG_CHF
printf("Got a double for %s (type %d, convert: %s): %g\n",
@@ -236,7 +238,7 @@ store_string_value(const chfPluginArgDef *opt, char *user, const char *val,
double *dval;
char *sval;
char *end;
int i;
size_t i;
#ifdef DEBUG_CHF
printf("Got a string for %s (type %d): %.*s\n",

View File

@@ -143,7 +143,7 @@ static void get_enum_strs(DBADDR *paddr, char **ppbuffer,
unsigned long no_str;
char *ptemp;
struct dbr_enumStrs *pdbr_enumStrs=(struct dbr_enumStrs*)(*ppbuffer);
int i;
unsigned int i;
memset(pdbr_enumStrs,'\0',dbr_enumStrs_size);
switch(field_type) {

View File

@@ -14,6 +14,7 @@
*/
#include <stdio.h>
#include <stddef.h>
#include <string.h>
#include "cantProceed.h"
@@ -273,7 +274,7 @@ static long chf_parse(dbChannel *chan, const char **pjson)
if (!yh)
return S_db_noMemory;
ys = yajl_parse(yh, (const unsigned char *) json, jlen);
ys = yajl_parse(yh, (const unsigned char *) json, (unsigned int) jlen);
if (ys == yajl_status_insufficient_data)
ys = yajl_parse_complete(yh);
@@ -286,7 +287,7 @@ static long chf_parse(dbChannel *chan, const char **pjson)
case yajl_status_error: {
unsigned char *err;
err = yajl_get_error(yh, 1, (const unsigned char *) json, jlen);
err = yajl_get_error(yh, 1, (const unsigned char *) json, (unsigned int) jlen);
printf("dbChannelCreate: %s\n", err);
yajl_free_error(yh, err);
} /* fall through */
@@ -349,7 +350,7 @@ static long parseArrayRange(dbChannel* chan, const char *pname, const char **ppn
epicsInt32 incr = 1;
epicsInt32 l;
char *pnext;
short exist;
ptrdiff_t exist;
chFilter *filter;
const chFilterPlugin *plug;
parse_result result;

View File

@@ -197,7 +197,7 @@ unsigned dbChannelIO::getName (
size_t len = strlen ( name );
strncpy ( pBuf, name, bufLen );
if (len < bufLen)
return len;
return (unsigned) len;
pBuf[--bufLen] = '\0';
return bufLen;
}

View File

@@ -288,7 +288,7 @@ static long dbDbGetPrecision(const struct link *plink, short *precision)
if (status)
return status;
*precision = buffer.precision.dp;
*precision = (short) buffer.precision.dp;
return 0;
}
@@ -658,7 +658,7 @@ long dbLoadLinkLS(struct link *plink, char *pbuffer, epicsUInt32 size,
plink->value.constantStr) {
strncpy(pbuffer, plink->value.constantStr, --size);
pbuffer[size] = 0;
*plen = strlen(pbuffer) + 1;
*plen = (epicsUInt32) strlen(pbuffer) + 1;
return 0;
}
@@ -690,7 +690,7 @@ long dbGetLinkLS(struct link *plink, char *pbuffer, epicsUInt32 size,
}
if (!status) {
pbuffer[--len] = 0;
*plen = strlen(pbuffer) + 1;
*plen = (epicsUInt32) strlen(pbuffer) + 1;
}
return status;
}

View File

@@ -69,7 +69,7 @@ static int dbpr_report(const char *pname, DBADDR *paddr, int interest_level,
TAB_BUFFER *pMsgBuff, int tab_size);
static void dbpr_msgOut(TAB_BUFFER *pMsgBuff,int tab_size);
static void dbpr_init_msg(TAB_BUFFER *pMsgBuff,int tab_size);
static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,int len,int tab_size);
static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,size_t len,int tab_size);
static void dbpr_msg_flush(TAB_BUFFER *pMsgBuff,int tab_size);
static char *dbf[DBF_NTYPES] = {
@@ -337,7 +337,7 @@ long dbpf(const char *pname,const char *pvalue)
long status;
epicsUInt16 value;
short dbrType;
long n = 1;
size_t n = 1;
if (!pname || !*pname || !pvalue) {
printf("Usage: dbpf \"pv name\", \"value\"\n");
@@ -365,7 +365,7 @@ long dbpf(const char *pname,const char *pvalue)
dbrType = DBR_STRING;
}
status = dbPutField(&addr, dbrType, pvalue, n);
status = dbPutField(&addr, dbrType, pvalue, (long) n);
if (status) {
if (status == -1)
printf("dbpf: Value conversion from %s to %s failed\n",
@@ -579,13 +579,13 @@ long dbtpf(const char *pname, const char *pvalue)
break;
case DBR_SHORT:
if ((valid = validLong)) {
epicsInt16 val_i16 = val_long;
epicsInt16 val_i16 = (epicsInt16) val_long;
status = dbPutField(&addr, put_type, &val_i16,1L);
}
break;
case DBR_USHORT:
if ((valid = validULong)) {
epicsUInt16 val_u16 = val_ulong;
epicsUInt16 val_u16 = (epicsUInt16) val_ulong;
status = dbPutField(&addr, put_type, &val_u16, 1L);
}
break;
@@ -611,7 +611,7 @@ long dbtpf(const char *pname, const char *pvalue)
break;
case DBR_ENUM:
if ((valid = validULong)) {
epicsEnum16 val_e16 = val_ulong;
epicsEnum16 val_e16 = (epicsEnum16) val_ulong;
status = dbPutField(&addr, put_type, &val_e16, 1L);
}
break;
@@ -755,7 +755,7 @@ static void printBuffer(
epicsInt32 val_i32;
epicsUInt32 val_u32;
char *pmsg = pMsgBuff->message;
int i, len;
size_t i, len;
if (reqOptions & DBR_STATUS) {
if (retOptions & DBR_STATUS) {
@@ -1252,7 +1252,7 @@ static int dbpr_report(
static void dbpr_msgOut(TAB_BUFFER *pMsgBuff,int tab_size)
{
int len;
size_t len;
int err = 0;
char *pmsg = pMsgBuff->message;
static int last_tabsize;
@@ -1298,11 +1298,11 @@ static void dbpr_init_msg(TAB_BUFFER *pMsgBuff,int tab_size)
pMsgBuff->pNexTab = pMsgBuff->out_buff + tab_size;
}
static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,int len,int tab_size)
static void dbpr_insert_msg(TAB_BUFFER *pMsgBuff,size_t len,int tab_size)
{
int current_len;
int n;
int tot_line;
size_t current_len;
size_t n;
size_t tot_line;
char *pmsg = pMsgBuff->message;
current_len = strlen(pMsgBuff->out_buff);
tot_line = current_len + len;

View File

@@ -471,7 +471,7 @@ int dbChannel_get_count(
status = dbChannelGetField(chan, DBR_FLOAT, &newSt, &options, &zero, pfl);
pold->status = newSt.status;
pold->severity = newSt.severity;
pold->precision = newSt.precision.dp;
pold->precision = (dbr_short_t) newSt.precision.dp;
strncpy(pold->units, newSt.units, MAX_UNITS_SIZE);
pold->units[MAX_UNITS_SIZE-1] = '\0';
pold->upper_disp_limit = epicsConvertDoubleToFloat(newSt.upper_disp_limit);
@@ -556,7 +556,7 @@ int dbChannel_get_count(
status = dbChannelGetField(chan, DBR_DOUBLE, &newSt, &options, &zero, pfl);
pold->status = newSt.status;
pold->severity = newSt.severity;
pold->precision = newSt.precision.dp;
pold->precision = (dbr_short_t) newSt.precision.dp;
strncpy(pold->units, newSt.units, MAX_UNITS_SIZE);
pold->units[MAX_UNITS_SIZE-1] = '\0';
pold->upper_disp_limit = newSt.upper_disp_limit;
@@ -620,7 +620,7 @@ int dbChannel_get_count(
status = dbChannelGetField(chan, DBR_FLOAT, &newSt, &options, &zero, pfl);
pold->status = newSt.status;
pold->severity = newSt.severity;
pold->precision = newSt.precision.dp;
pold->precision = (dbr_short_t) newSt.precision.dp;
strncpy(pold->units, newSt.units, MAX_UNITS_SIZE);
pold->units[MAX_UNITS_SIZE-1] = '\0';
pold->upper_disp_limit = epicsConvertDoubleToFloat(newSt.upper_disp_limit);
@@ -742,7 +742,7 @@ int dbChannel_get_count(
status = dbChannelGetField(chan, DBR_DOUBLE, &newSt, &options, &zero, pfl);
pold->status = newSt.status;
pold->severity = newSt.severity;
pold->precision = newSt.precision.dp;
pold->precision = (dbr_short_t) newSt.precision.dp;
strncpy(pold->units, newSt.units, MAX_UNITS_SIZE);
pold->units[MAX_UNITS_SIZE-1] = '\0';
pold->upper_disp_limit = newSt.upper_disp_limit;

View File

@@ -31,8 +31,10 @@ epicsShareExtern long (*dbGetConvertRoutine[newDBF_DEVICE+1][newDBR_ENUM+1])
epicsShareExtern long (*dbPutConvertRoutine[newDBR_ENUM+1][newDBF_DEVICE+1])
(struct dbAddr *paddr, const void *pbuffer,long nRequest,
long no_elements, long offset);
epicsShareExtern long (*dbFastGetConvertRoutine[newDBF_DEVICE+1][newDBR_ENUM+1])();
epicsShareExtern long (*dbFastPutConvertRoutine[newDBR_ENUM+1][newDBF_DEVICE+1])();
epicsShareExtern long (*dbFastGetConvertRoutine[newDBF_DEVICE+1][newDBR_ENUM+1])
(const void *from, void *to, dbAddr *paddr);
epicsShareExtern long (*dbFastPutConvertRoutine[newDBR_ENUM+1][newDBF_DEVICE+1])
(const void *from, void *to, dbAddr *paddr);
/*Conversion between old and new DBR types*/
epicsShareExtern unsigned short dbDBRoldToDBFnew[DBR_DOUBLE+1];

View File

@@ -305,7 +305,7 @@ long dbReadDatabaseFP(DBBASE **ppdbbase,FILE *fp,
static int db_yyinput(char *buf, int max_size)
{
int l,n;
size_t l,n;
char *fgetsRtn;
if(yyAbort) return(0);

View File

@@ -78,7 +78,7 @@ void dbPvdInitPvt(dbBase *pdbbase)
return;
}
PVDENTRY *dbPvdFind(dbBase *pdbbase, const char *name, int lenName)
PVDENTRY *dbPvdFind(dbBase *pdbbase, const char *name, size_t lenName)
{
dbPvd *ppvd = pdbbase->ppvd;
dbPvdBucket *pbucket;

View File

@@ -9,6 +9,7 @@
/* $Revision-Id$ */
#include <stdio.h>
#include <stddef.h>
#include <errno.h>
#include <limits.h>
#include <string.h>
@@ -395,10 +396,10 @@ void dbCatString(char **string,int *stringLength,char *src,char *separator)
}
if(*stringLength>0) {
strcat(*string,separator);
*stringLength += strlen(separator);
*stringLength += (int) strlen(separator);
}
strcat(*string,src);
*stringLength += strlen(src);
*stringLength += (int) strlen(src);
}
dbBase * dbAllocBase(void)
@@ -698,7 +699,7 @@ long dbAddPath(DBBASE *pdbbase,const char *path)
* 2) isnt a path separator
*/
len = (plast - path) + 1;
if (dbAddOnePath (pdbbase, path, len)) return (-1);
if (dbAddOnePath (pdbbase, path, (unsigned) len)) return (-1);
path += len;
if (pcolon) {
path += strlen(OSI_PATH_LIST_SEPARATOR);
@@ -1232,7 +1233,7 @@ long dbGetAttributePart(DBENTRY *pdbentry, const char **ppname)
if (!precordType) return S_dbLib_recordTypeNotFound;
pattribute = (dbRecordAttribute *)ellFirst(&precordType->attributeList);
while (pattribute) {
int nameLen = strlen(pattribute->name);
size_t nameLen = strlen(pattribute->name);
int compare = strncmp(pattribute->name, pname, nameLen);
int ch = pname[nameLen];
if (compare == 0 && !(ch == '_' || isalnum(ch))) {
@@ -1491,13 +1492,13 @@ long dbFindRecordPart(DBENTRY *pdbentry, const char **ppname)
dbBase *pdbbase = pdbentry->pdbbase;
const char *pname = *ppname;
const char *pfn;
int lenName;
size_t lenName;
PVDENTRY *ppvdNode;
zeroDbentry(pdbentry);
pfn = strchr(pname, '.');
if (pfn) {
lenName = pfn - pname;
lenName = (size_t) (pfn - pname);
} else {
lenName = strlen(pname);
}
@@ -1760,7 +1761,7 @@ long dbFindFieldPart(DBENTRY *pdbentry,const char **ppname)
char **papsortFldName;
short *sortFldInd;
int ch;
int nameLen;
size_t nameLen;
if (!precordType) return S_dbLib_recordTypeNotFound;
if (!precnode) return S_dbLib_recNotFound;
@@ -1792,7 +1793,7 @@ long dbFindFieldPart(DBENTRY *pdbentry,const char **ppname)
bottom = 0;
test = (top + bottom) / 2;
while (1) {
int compare = strncmp(papsortFldName[test], pname, nameLen);
size_t compare = strncmp(papsortFldName[test], pname, nameLen);
if (compare == 0)
compare = strlen(papsortFldName[test]) - nameLen;
if (compare == 0) {
@@ -2092,7 +2093,7 @@ long dbPutString(DBENTRY *pdbentry,const char *pstring)
DBLINK *plink;
char string[80];
char *pstr = string;
int ind;
size_t ind;
if (!pfield)
return S_dbLib_fieldNotFound;
@@ -2363,7 +2364,7 @@ long dbPutString(DBENTRY *pdbentry,const char *pstring)
if(!(end = strchr(pstr,'G'))) return (S_dbLib_badField);
pstr = end + 1;
cvtDecimalOrHexToShort(pstr,&tmp_val);
plink->value.bbgpibio.gpibaddr=tmp_val;
plink->value.bbgpibio.gpibaddr=(unsigned char)tmp_val;
status = putParmString(&plink->value.bbgpibio.parm,pstr);
}
break;

View File

@@ -52,7 +52,7 @@ typedef struct{
epicsShareFunc int dbPvdTableSize(int size);
extern int dbStaticDebug;
void dbPvdInitPvt(DBBASE *pdbbase);
PVDENTRY *dbPvdFind(DBBASE *pdbbase,const char *name,int lenname);
PVDENTRY *dbPvdFind(DBBASE *pdbbase,const char *name,size_t lenname);
PVDENTRY *dbPvdAdd(DBBASE *pdbbase,dbRecordType *precordType,dbRecordNode *precnode);
void dbPvdDelete(DBBASE *pdbbase,dbRecordNode *precnode);
void dbPvdFreeMem(DBBASE *pdbbase);

View File

@@ -63,7 +63,8 @@ static int precision[2] = {6, 14};
static void realToString(double value, char *preturn, int isdouble)
{
double absvalue;
int logval,prec,end;
int logval,prec;
size_t end;
char tstr[30];
char *ptstr = &tstr[0];
int round;
@@ -583,9 +584,9 @@ long dbPutStringNum(DBENTRY *pdbentry,const char *pstring)
value = strtol(pstring,&endp,0);
if(*endp!=0) status = S_dbLib_badField;
switch (pflddes->field_type) {
case DBF_CHAR : *(char *)pfield = value; break;
case DBF_SHORT : *(short *)pfield = value; break;
case DBF_LONG : *(epicsInt32 *)pfield = value; break;
case DBF_CHAR : *(char *)pfield = (char)value; break;
case DBF_SHORT : *(short *)pfield = (short)value; break;
case DBF_LONG : *(epicsInt32 *)pfield = (epicsInt32)value; break;
default: epicsPrintf("Logic error in dbPutStringNum\n");
}
}
@@ -600,10 +601,10 @@ long dbPutStringNum(DBENTRY *pdbentry,const char *pstring)
value = strtoul(pstring,&endp,0);
if(*endp!=0) status = S_dbLib_badField;
switch (pflddes->field_type) {
case DBF_UCHAR : *(unsigned char *)pfield = value; break;
case DBF_UCHAR : *(unsigned char *)pfield = (unsigned char)value; break;
case DBF_USHORT:
case DBF_ENUM: *(unsigned short *)pfield=value; break;
case DBF_ULONG : *(epicsUInt32 *)pfield = value; break;
case DBF_ENUM: *(unsigned short *)pfield = (unsigned short)value; break;
case DBF_ULONG : *(epicsUInt32 *)pfield = (epicsUInt32)value; break;
default: epicsPrintf("Logic error in dbPutStringNum\n");
}
}