v0.9: Fix signed/unsigned compare warnings.
Fix all the Icarus files that can be so that we do not have any signed/unsigned compare warnings. It also removes const as a return qualifier for two routines in discipline.h.
This commit is contained in:
parent
633006bc6e
commit
04b9cf5715
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef __discipline_H
|
#ifndef __discipline_H
|
||||||
#define __discipline_H
|
#define __discipline_H
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2008 Stephen Williams (steve@icarus.com)
|
* Copyright (c) 2008-2010 Stephen Williams (steve@icarus.com)
|
||||||
*
|
*
|
||||||
* This source code is free software; you can redistribute it
|
* This source code is free software; you can redistribute it
|
||||||
* and/or modify it in source code form under the terms of the GNU
|
* and/or modify it in source code form under the terms of the GNU
|
||||||
|
|
@ -55,8 +55,8 @@ class ivl_discipline_s : public LineInfo {
|
||||||
|
|
||||||
perm_string name() const { return name_; }
|
perm_string name() const { return name_; }
|
||||||
ivl_dis_domain_t domain() const { return domain_; }
|
ivl_dis_domain_t domain() const { return domain_; }
|
||||||
const ivl_nature_t potential() const { return potential_; }
|
ivl_nature_t potential() const { return potential_; }
|
||||||
const ivl_nature_t flow() const { return flow_; }
|
ivl_nature_t flow() const { return flow_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
perm_string name_;
|
perm_string name_;
|
||||||
|
|
|
||||||
|
|
@ -94,12 +94,13 @@ static void draw_lpm_mux_ab(ivl_lpm_t net, const char*muxz)
|
||||||
|
|
||||||
static void draw_lpm_mux_nest(ivl_lpm_t net, const char*muxz)
|
static void draw_lpm_mux_nest(ivl_lpm_t net, const char*muxz)
|
||||||
{
|
{
|
||||||
int idx, level;
|
unsigned idx, level;
|
||||||
unsigned width = ivl_lpm_width(net);
|
unsigned width = ivl_lpm_width(net);
|
||||||
unsigned swidth = ivl_lpm_selects(net);
|
unsigned swidth = ivl_lpm_selects(net);
|
||||||
char*select_input;
|
char*select_input;
|
||||||
|
|
||||||
assert(ivl_lpm_size(net) == (1 << swidth));
|
assert(swidth < sizeof(unsigned));
|
||||||
|
assert(ivl_lpm_size(net) == (1U << swidth));
|
||||||
|
|
||||||
select_input = strdup(draw_net_input(ivl_lpm_select(net)));
|
select_input = strdup(draw_net_input(ivl_lpm_select(net)));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,8 @@ static char* draw_C4_to_string(ivl_net_const_t cptr)
|
||||||
for (idx = 0 ; idx < ivl_const_width(cptr) ; idx += 1) {
|
for (idx = 0 ; idx < ivl_const_width(cptr) ; idx += 1) {
|
||||||
char bitchar = bits[ivl_const_width(cptr)-idx-1];
|
char bitchar = bits[ivl_const_width(cptr)-idx-1];
|
||||||
*dp++ = bitchar;
|
*dp++ = bitchar;
|
||||||
assert((dp - result) < result_len);
|
assert(dp >= result);
|
||||||
|
assert((unsigned)(dp - result) < result_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(dp, ">");
|
strcpy(dp, ">");
|
||||||
|
|
@ -143,7 +144,8 @@ static char* draw_C8_to_string(ivl_net_const_t cptr,
|
||||||
assert(0);
|
assert(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
assert(dp - result < nresult);
|
assert(dp >= result);
|
||||||
|
assert((unsigned)(dp - result) < nresult);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(dp, ">");
|
strcpy(dp, ">");
|
||||||
|
|
@ -257,7 +259,8 @@ static char* draw_net_input_drive(ivl_nexus_t nex, ivl_nexus_ptr_t nptr)
|
||||||
dp += ivl_logic_width(lptr);
|
dp += ivl_logic_width(lptr);
|
||||||
*dp++ = '>';
|
*dp++ = '>';
|
||||||
*dp = 0;
|
*dp = 0;
|
||||||
assert((dp-result) <= result_len);
|
assert(dp >= result);
|
||||||
|
assert((unsigned)(dp - result) <= result_len);
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
char val[4];
|
char val[4];
|
||||||
|
|
@ -276,7 +279,8 @@ static char* draw_net_input_drive(ivl_nexus_t nex, ivl_nexus_ptr_t nptr)
|
||||||
dp += 3*ivl_logic_width(lptr);
|
dp += 3*ivl_logic_width(lptr);
|
||||||
*dp++ = '>';
|
*dp++ = '>';
|
||||||
*dp = 0;
|
*dp = 0;
|
||||||
assert((dp-result) <= result_len);
|
assert(dp >= result);
|
||||||
|
assert((unsigned)(dp - result) <= result_len);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -292,7 +296,8 @@ static char* draw_net_input_drive(ivl_nexus_t nex, ivl_nexus_ptr_t nptr)
|
||||||
dp += ivl_logic_width(lptr);
|
dp += ivl_logic_width(lptr);
|
||||||
*dp++ = '>';
|
*dp++ = '>';
|
||||||
*dp = 0;
|
*dp = 0;
|
||||||
assert((dp-result) <= result_len);
|
assert(dp >= result);
|
||||||
|
assert((unsigned)(dp - result) <= result_len);
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
char val[4];
|
char val[4];
|
||||||
|
|
@ -311,7 +316,8 @@ static char* draw_net_input_drive(ivl_nexus_t nex, ivl_nexus_ptr_t nptr)
|
||||||
dp += 3*ivl_logic_width(lptr);
|
dp += 3*ivl_logic_width(lptr);
|
||||||
*dp++ = '>';
|
*dp++ = '>';
|
||||||
*dp = 0;
|
*dp = 0;
|
||||||
assert((dp-result) <= result_len);
|
assert(dp >= result);
|
||||||
|
assert((unsigned)(dp - result) <= result_len);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ int draw_ufunc_real(ivl_expr_t expr)
|
||||||
ivl_scope_t def = ivl_expr_def(expr);
|
ivl_scope_t def = ivl_expr_def(expr);
|
||||||
ivl_signal_t retval = ivl_scope_port(def, 0);
|
ivl_signal_t retval = ivl_scope_port(def, 0);
|
||||||
int res = 0;
|
int res = 0;
|
||||||
int idx;
|
unsigned idx;
|
||||||
|
|
||||||
/* If this is an automatic function, allocate the local storage. */
|
/* If this is an automatic function, allocate the local storage. */
|
||||||
if (ivl_scope_is_auto(def)) {
|
if (ivl_scope_is_auto(def)) {
|
||||||
|
|
|
||||||
|
|
@ -308,7 +308,8 @@ static void draw_vpi_taskfunc_args(const char*call_string,
|
||||||
for (bit = wid ; bit > 0 ; bit -= 1)
|
for (bit = wid ; bit > 0 ; bit -= 1)
|
||||||
*dp++ = bits[bit-1];
|
*dp++ = bits[bit-1];
|
||||||
*dp++ = 0;
|
*dp++ = 0;
|
||||||
assert(dp - buffer <= sizeof buffer);
|
assert(dp >= buffer);
|
||||||
|
assert((unsigned)(dp - buffer) <= sizeof buffer);
|
||||||
}
|
}
|
||||||
args[idx].text = strdup(buffer);
|
args[idx].text = strdup(buffer);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -929,9 +929,9 @@ static struct vector_info draw_binary_expr_le(ivl_expr_t expr,
|
||||||
case 'G':
|
case 'G':
|
||||||
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
||||||
if (number_is_immediate(le,16,0) && !number_is_unknown(le)) {
|
if (number_is_immediate(le,16,0) && !number_is_unknown(le)) {
|
||||||
unsigned imm = get_number_immediate(le);
|
long imm = get_number_immediate(le);
|
||||||
assert(imm >= 0);
|
assert(imm >= 0);
|
||||||
fprintf(vvp_out, " %%cmpi/%c %u, %u, %u;\n", s_flag,
|
fprintf(vvp_out, " %%cmpi/%c %u, %ld, %u;\n", s_flag,
|
||||||
rv.base, imm, rv.wid);
|
rv.base, imm, rv.wid);
|
||||||
} else {
|
} else {
|
||||||
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
||||||
|
|
@ -945,9 +945,9 @@ static struct vector_info draw_binary_expr_le(ivl_expr_t expr,
|
||||||
case 'L':
|
case 'L':
|
||||||
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
||||||
if (number_is_immediate(re,16,0) && !number_is_unknown(re)) {
|
if (number_is_immediate(re,16,0) && !number_is_unknown(re)) {
|
||||||
unsigned imm = get_number_immediate(re);
|
long imm = get_number_immediate(re);
|
||||||
assert(imm >= 0);
|
assert(imm >= 0);
|
||||||
fprintf(vvp_out, " %%cmpi/%c %u, %u, %u;\n", s_flag,
|
fprintf(vvp_out, " %%cmpi/%c %u, %ld, %u;\n", s_flag,
|
||||||
lv.base, imm, lv.wid);
|
lv.base, imm, lv.wid);
|
||||||
} else {
|
} else {
|
||||||
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
||||||
|
|
@ -961,9 +961,9 @@ static struct vector_info draw_binary_expr_le(ivl_expr_t expr,
|
||||||
case '<':
|
case '<':
|
||||||
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
||||||
if (number_is_immediate(re,16,0) && !number_is_unknown(re)) {
|
if (number_is_immediate(re,16,0) && !number_is_unknown(re)) {
|
||||||
unsigned imm = get_number_immediate(re);
|
long imm = get_number_immediate(re);
|
||||||
assert(imm >= 0);
|
assert(imm >= 0);
|
||||||
fprintf(vvp_out, " %%cmpi/%c %u, %u, %u;\n", s_flag,
|
fprintf(vvp_out, " %%cmpi/%c %u, %ld, %u;\n", s_flag,
|
||||||
lv.base, imm, lv.wid);
|
lv.base, imm, lv.wid);
|
||||||
} else {
|
} else {
|
||||||
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
||||||
|
|
@ -976,9 +976,9 @@ static struct vector_info draw_binary_expr_le(ivl_expr_t expr,
|
||||||
case '>':
|
case '>':
|
||||||
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
rv = draw_eval_expr_wid(re, owid, STUFF_OK_XZ);
|
||||||
if (number_is_immediate(le,16,0) && !number_is_unknown(le)) {
|
if (number_is_immediate(le,16,0) && !number_is_unknown(le)) {
|
||||||
unsigned imm = get_number_immediate(le);
|
long imm = get_number_immediate(le);
|
||||||
assert(imm >= 0);
|
assert(imm >= 0);
|
||||||
fprintf(vvp_out, " %%cmpi/%c %u, %u, %u;\n", s_flag,
|
fprintf(vvp_out, " %%cmpi/%c %u, %ld, %u;\n", s_flag,
|
||||||
rv.base, imm, rv.wid);
|
rv.base, imm, rv.wid);
|
||||||
} else {
|
} else {
|
||||||
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
lv = draw_eval_expr_wid(le, owid, STUFF_OK_XZ);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007-2008 Stephen Williams (steve@icarus.com)
|
* Copyright (c) 2007-2010 Stephen Williams (steve@icarus.com)
|
||||||
*
|
*
|
||||||
* This source code is free software; you can redistribute it
|
* This source code is free software; you can redistribute it
|
||||||
* and/or modify it in source code form under the terms of the GNU
|
* and/or modify it in source code form under the terms of the GNU
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
static ivl_signal_t find_path_source_port(ivl_delaypath_t path)
|
static ivl_signal_t find_path_source_port(ivl_delaypath_t path)
|
||||||
{
|
{
|
||||||
int idx;
|
unsigned idx;
|
||||||
ivl_nexus_t nex = ivl_path_source(path);
|
ivl_nexus_t nex = ivl_path_source(path);
|
||||||
|
|
||||||
for (idx = 0 ; idx < ivl_nexus_ptrs(nex) ; idx += 1) {
|
for (idx = 0 ; idx < ivl_nexus_ptrs(nex) ; idx += 1) {
|
||||||
|
|
|
||||||
|
|
@ -814,14 +814,15 @@ static void draw_logic_in_scope(ivl_net_logic_t lptr)
|
||||||
/* Get all the input label that I will use for parameters to
|
/* Get all the input label that I will use for parameters to
|
||||||
the functor that I create later. */
|
the functor that I create later. */
|
||||||
ninp = ivl_logic_pins(lptr) - 1;
|
ninp = ivl_logic_pins(lptr) - 1;
|
||||||
|
assert(ninp >= 0);
|
||||||
input_strings = calloc(ninp, sizeof(char*));
|
input_strings = calloc(ninp, sizeof(char*));
|
||||||
for (pdx = 0 ; pdx < ninp ; pdx += 1)
|
for (pdx = 0 ; pdx < (unsigned)ninp ; pdx += 1)
|
||||||
input_strings[pdx] = draw_net_input(ivl_logic_pin(lptr, pdx+1));
|
input_strings[pdx] = draw_net_input(ivl_logic_pin(lptr, pdx+1));
|
||||||
|
|
||||||
level = 0;
|
level = 0;
|
||||||
while (ninp) {
|
while (ninp) {
|
||||||
int inst;
|
unsigned inst;
|
||||||
for (inst = 0; inst < ninp; inst += 4) {
|
for (inst = 0; inst < (unsigned)ninp; inst += 4) {
|
||||||
if (ninp > 4)
|
if (ninp > 4)
|
||||||
fprintf(vvp_out, "L_%p/%d/%d .functor %s %u",
|
fprintf(vvp_out, "L_%p/%d/%d .functor %s %u",
|
||||||
lptr, level, inst, lcasc, vector_width);
|
lptr, level, inst, lcasc, vector_width);
|
||||||
|
|
@ -834,7 +835,7 @@ static void draw_logic_in_scope(ivl_net_logic_t lptr)
|
||||||
fprintf(vvp_out, " [%u %u]", str0, str1);
|
fprintf(vvp_out, " [%u %u]", str0, str1);
|
||||||
|
|
||||||
}
|
}
|
||||||
for (pdx = inst; pdx < ninp && pdx < inst+4 ; pdx += 1) {
|
for (pdx = inst; pdx < (unsigned)ninp && pdx < inst+4 ; pdx += 1) {
|
||||||
if (level) {
|
if (level) {
|
||||||
fprintf(vvp_out, ", L_%p/%d/%d",
|
fprintf(vvp_out, ", L_%p/%d/%d",
|
||||||
lptr, level - 1, pdx*4);
|
lptr, level - 1, pdx*4);
|
||||||
|
|
|
||||||
|
|
@ -265,7 +265,8 @@ static unsigned int get_format_char(char **rtn, int ljust, int plus,
|
||||||
unsigned int ini_size = 512; /* The initial size of the buffer. */
|
unsigned int ini_size = 512; /* The initial size of the buffer. */
|
||||||
|
|
||||||
/* Make sure the width fits in the initial buffer. */
|
/* Make sure the width fits in the initial buffer. */
|
||||||
if (width+1 > ini_size) ini_size = width + 1;
|
assert(width >= -1);
|
||||||
|
if ((unsigned int)(width+1) > ini_size) ini_size = width + 1;
|
||||||
|
|
||||||
/* The default return value is the full format. */
|
/* The default return value is the full format. */
|
||||||
result = malloc(ini_size*sizeof(char));
|
result = malloc(ini_size*sizeof(char));
|
||||||
|
|
|
||||||
|
|
@ -546,7 +546,7 @@ static unsigned fread_word(FILE *fp, vpiHandle word,
|
||||||
* my local vector. */
|
* my local vector. */
|
||||||
val.format = vpiVectorVal;
|
val.format = vpiVectorVal;
|
||||||
vpi_get_value(word, &val);
|
vpi_get_value(word, &val);
|
||||||
for (bidx = 0; bidx < words; bidx += 1) {
|
for (bidx = 0; (unsigned)bidx < words; bidx += 1) {
|
||||||
vector[bidx].aval = val.value.vector[bidx].aval;
|
vector[bidx].aval = val.value.vector[bidx].aval;
|
||||||
vector[bidx].bval = val.value.vector[bidx].bval;
|
vector[bidx].bval = val.value.vector[bidx].bval;
|
||||||
}
|
}
|
||||||
|
|
@ -683,9 +683,10 @@ static PLI_INT32 sys_fread_calltf(PLI_BYTE8*name)
|
||||||
vector = calloc(words, sizeof(s_vpi_vecval));
|
vector = calloc(words, sizeof(s_vpi_vecval));
|
||||||
bpe = (width+7)/8;
|
bpe = (width+7)/8;
|
||||||
|
|
||||||
|
assert(count >= 0);
|
||||||
if (is_mem) {
|
if (is_mem) {
|
||||||
rtn = 0;
|
rtn = 0;
|
||||||
for (idx = 0; idx < count; idx += 1) {
|
for (idx = 0; idx < (unsigned)count; idx += 1) {
|
||||||
vpiHandle word;
|
vpiHandle word;
|
||||||
word = vpi_handle_by_index(mem_reg, start+(signed)idx);
|
word = vpi_handle_by_index(mem_reg, start+(signed)idx);
|
||||||
rtn += fread_word(fp, word, words, bpe, vector);
|
rtn += fread_word(fp, word, words, bpe, vector);
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,8 @@ void sdf_select_instance(const char*celltype, const char*cellinst)
|
||||||
const char*src = cellinst;
|
const char*src = cellinst;
|
||||||
const char*dp;
|
const char*dp;
|
||||||
while ( (dp=strchr(src, '.')) ) {
|
while ( (dp=strchr(src, '.')) ) {
|
||||||
int len = dp - src;
|
unsigned len = dp - src;
|
||||||
|
assert(dp >= src);
|
||||||
assert(len < sizeof buffer);
|
assert(len < sizeof buffer);
|
||||||
strncpy(buffer, src, len);
|
strncpy(buffer, src, len);
|
||||||
buffer[len] = 0;
|
buffer[len] = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue