Clean up warnings
Clean up warnings that show up on newer compilers. Many of these warnings are related to obsolete c library features or language features. This does not clear up warnings in code generated by bison or flex.
This commit is contained in:
parent
2d6243ea6c
commit
03f912dc55
|
|
@ -4023,7 +4023,7 @@ unsigned PEIdent::test_width_method_(Design*des, NetScope*scope, width_mode_t&)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (const struct netqueue_t *queue = net->queue_type()) {
|
if (const class netqueue_t *queue = net->queue_type()) {
|
||||||
if (member_name == "pop_back" || member_name == "pop_front") {
|
if (member_name == "pop_back" || member_name == "pop_front") {
|
||||||
expr_type_ = queue->element_base_type();
|
expr_type_ = queue->element_base_type();
|
||||||
expr_width_ = queue->element_width();
|
expr_width_ = queue->element_width();
|
||||||
|
|
@ -6601,7 +6601,6 @@ NetExpr* PENewClass::elaborate_expr_constructor_(Design*des, NetScope*scope,
|
||||||
parms[0] = obj;
|
parms[0] = obj;
|
||||||
|
|
||||||
int missing_parms = 0;
|
int missing_parms = 0;
|
||||||
int parm_errors = 0;
|
|
||||||
for (size_t idx = 1 ; idx < parms.size() ; idx += 1) {
|
for (size_t idx = 1 ; idx < parms.size() ; idx += 1) {
|
||||||
// While there are default arguments, check them.
|
// While there are default arguments, check them.
|
||||||
if (idx <= parms_.size() && parms_[idx-1]) {
|
if (idx <= parms_.size() && parms_[idx-1]) {
|
||||||
|
|
@ -6609,8 +6608,9 @@ NetExpr* PENewClass::elaborate_expr_constructor_(Design*des, NetScope*scope,
|
||||||
parms[idx] = elaborate_rval_expr(des, scope,
|
parms[idx] = elaborate_rval_expr(des, scope,
|
||||||
def->port(idx)->net_type(),
|
def->port(idx)->net_type(),
|
||||||
tmp, false);
|
tmp, false);
|
||||||
if (parms[idx] == 0)
|
// NOTE: if elaborate_rval_expr fails, it will return a
|
||||||
parm_errors += 1;
|
// nullptr, but it will also increment des->errors so there
|
||||||
|
// is nothing we need to do here.
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -6632,7 +6632,6 @@ NetExpr* PENewClass::elaborate_expr_constructor_(Design*des, NetScope*scope,
|
||||||
if (missing_parms > 0) {
|
if (missing_parms > 0) {
|
||||||
cerr << get_fileline() << ": error: The " << scope_path(new_scope)
|
cerr << get_fileline() << ": error: The " << scope_path(new_scope)
|
||||||
<< " constructor call is missing arguments." << endl;
|
<< " constructor call is missing arguments." << endl;
|
||||||
parm_errors += 1;
|
|
||||||
des->errors += 1;
|
des->errors += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ ivl_type_t enum_type_t::elaborate_type_raw(Design *des, NetScope *scope) const
|
||||||
{
|
{
|
||||||
ivl_type_t base = base_type->elaborate_type(des, scope);
|
ivl_type_t base = base_type->elaborate_type(des, scope);
|
||||||
|
|
||||||
const struct netvector_t *vec_type = dynamic_cast<const netvector_t*>(base);
|
const class netvector_t *vec_type = dynamic_cast<const netvector_t*>(base);
|
||||||
|
|
||||||
if (!vec_type && !dynamic_cast<const netparray_t*>(base)) {
|
if (!vec_type && !dynamic_cast<const netparray_t*>(base)) {
|
||||||
cerr << get_fileline() << ": error: "
|
cerr << get_fileline() << ": error: "
|
||||||
|
|
|
||||||
4
pform.cc
4
pform.cc
|
|
@ -3400,9 +3400,9 @@ int pform_parse(const char*path)
|
||||||
char unit_name[20];
|
char unit_name[20];
|
||||||
static unsigned nunits = 0;
|
static unsigned nunits = 0;
|
||||||
if (separate_compilation)
|
if (separate_compilation)
|
||||||
sprintf(unit_name, "$unit#%u", ++nunits);
|
snprintf(unit_name, sizeof(unit_name)-1, "$unit#%u", ++nunits);
|
||||||
else
|
else
|
||||||
sprintf(unit_name, "$unit");
|
snprintf(unit_name, sizeof(unit_name)-1, "$unit");
|
||||||
|
|
||||||
PPackage*unit = new PPackage(lex_strings.make(unit_name), 0);
|
PPackage*unit = new PPackage(lex_strings.make(unit_name), 0);
|
||||||
unit->default_lifetime = LexicalScope::STATIC;
|
unit->default_lifetime = LexicalScope::STATIC;
|
||||||
|
|
|
||||||
4
t-dll.cc
4
t-dll.cc
|
|
@ -673,7 +673,7 @@ bool dll_target::start_design(const Design*des)
|
||||||
if ((dll_ == 0) && (dll_path_[0] != '/')) {
|
if ((dll_ == 0) && (dll_path_[0] != '/')) {
|
||||||
size_t len = strlen(basedir) + 1 + strlen(dll_path_) + 1;
|
size_t len = strlen(basedir) + 1 + strlen(dll_path_) + 1;
|
||||||
char*tmp = new char[len];
|
char*tmp = new char[len];
|
||||||
sprintf(tmp, "%s/%s", basedir, dll_path_);
|
snprintf(tmp, len, "%s/%s", basedir, dll_path_);
|
||||||
dll_ = ivl_dlopen(tmp);
|
dll_ = ivl_dlopen(tmp);
|
||||||
delete[]tmp;
|
delete[]tmp;
|
||||||
}
|
}
|
||||||
|
|
@ -2847,7 +2847,7 @@ void dll_target::test_version(const char*target_name)
|
||||||
if ((dll_ == 0) && (target_name[0] != '/')) {
|
if ((dll_ == 0) && (target_name[0] != '/')) {
|
||||||
size_t len = strlen(basedir) + 1 + strlen(target_name) + 1;
|
size_t len = strlen(basedir) + 1 + strlen(target_name) + 1;
|
||||||
char*tmp = new char[len];
|
char*tmp = new char[len];
|
||||||
sprintf(tmp, "%s/%s", basedir, target_name);
|
snprintf(tmp, len, "%s/%s", basedir, target_name);
|
||||||
dll_ = ivl_dlopen(tmp);
|
dll_ = ivl_dlopen(tmp);
|
||||||
delete[]tmp;
|
delete[]tmp;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ static vhdl_entity *g_active_entity = NULL;
|
||||||
|
|
||||||
// Set of scopes that are treated as the default examples of
|
// Set of scopes that are treated as the default examples of
|
||||||
// that type. Any other scopes of the same type are ignored.
|
// that type. Any other scopes of the same type are ignored.
|
||||||
typedef vector<ivl_scope_t> default_scopes_t;
|
typedef std::vector<ivl_scope_t> default_scopes_t;
|
||||||
static default_scopes_t g_default_scopes;
|
static default_scopes_t g_default_scopes;
|
||||||
|
|
||||||
// True if signal `sig' has already been encountered by the code
|
// True if signal `sig' has already been encountered by the code
|
||||||
|
|
@ -304,14 +304,13 @@ static bool same_scope_type_name(ivl_scope_t a, ivl_scope_t b)
|
||||||
*/
|
*/
|
||||||
bool seen_this_scope_type(ivl_scope_t s)
|
bool seen_this_scope_type(ivl_scope_t s)
|
||||||
{
|
{
|
||||||
if (find_if(g_default_scopes.begin(), g_default_scopes.end(),
|
for (auto cur = g_default_scopes.begin() ; cur != g_default_scopes.end() ; cur++) {
|
||||||
bind1st(ptr_fun(same_scope_type_name), s))
|
if (same_scope_type_name(s, *cur))
|
||||||
== g_default_scopes.end()) {
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
g_default_scopes.push_back(s);
|
g_default_scopes.push_back(s);
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
else
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -1563,7 +1563,7 @@ index_subtype_definition_list
|
||||||
instantiation_list
|
instantiation_list
|
||||||
: identifier_list
|
: identifier_list
|
||||||
{
|
{
|
||||||
instant_list_t* tmp = new instant_list_t(instant_list_t::NONE, $1);
|
instant_list_t* tmp = new instant_list_t(instant_list_t::NO_DOMAIN, $1);
|
||||||
$$ = tmp;
|
$$ = tmp;
|
||||||
}
|
}
|
||||||
| K_others
|
| K_others
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class entity_aspect_t {
|
||||||
|
|
||||||
class instant_list_t {
|
class instant_list_t {
|
||||||
public:
|
public:
|
||||||
typedef enum { ALL = 0, OTHERS, NONE } application_domain_t;
|
typedef enum { ALL = 0, OTHERS, NO_DOMAIN } application_domain_t;
|
||||||
|
|
||||||
instant_list_t(application_domain_t d, std::list<perm_string>* l) : domain_(d), labels_(l) {}
|
instant_list_t(application_domain_t d, std::list<perm_string>* l) : domain_(d), labels_(l) {}
|
||||||
~instant_list_t() { delete labels_; }
|
~instant_list_t() { delete labels_; }
|
||||||
|
|
|
||||||
|
|
@ -860,7 +860,8 @@ static double vlg_round(double rval)
|
||||||
|
|
||||||
static void real_signal_value(struct t_vpi_value*vp, double rval)
|
static void real_signal_value(struct t_vpi_value*vp, double rval)
|
||||||
{
|
{
|
||||||
char*rbuf = (char *) need_result_buf(64 + 1, RBUF_VAL);
|
static const size_t RBUF_SIZE = 64 + 1;
|
||||||
|
char*rbuf = (char *) need_result_buf(RBUF_SIZE, RBUF_VAL);
|
||||||
|
|
||||||
switch (vp->format) {
|
switch (vp->format) {
|
||||||
case vpiObjTypeVal:
|
case vpiObjTypeVal:
|
||||||
|
|
@ -882,14 +883,14 @@ static void real_signal_value(struct t_vpi_value*vp, double rval)
|
||||||
|
|
||||||
case vpiDecStrVal:
|
case vpiDecStrVal:
|
||||||
if (std::isnan(rval))
|
if (std::isnan(rval))
|
||||||
sprintf(rbuf, "%s", "nan");
|
snprintf(rbuf, RBUF_SIZE, "%s", "nan");
|
||||||
else
|
else
|
||||||
sprintf(rbuf, "%0.0f", vlg_round(rval));
|
snprintf(rbuf, RBUF_SIZE, "%0.0f", vlg_round(rval));
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiHexStrVal:
|
case vpiHexStrVal:
|
||||||
sprintf(rbuf, "%" PRIx64, (uint64_t)vlg_round(rval));
|
snprintf(rbuf, RBUF_SIZE, "%" PRIx64, (uint64_t)vlg_round(rval));
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,8 @@ void __vpiCobjectVar::vpi_get_value(p_vpi_value val)
|
||||||
{
|
{
|
||||||
// FIXME: We need to get the assigned object address if one is assigned.
|
// FIXME: We need to get the assigned object address if one is assigned.
|
||||||
//fprintf(stderr, "HERE: %p\n", get_net());
|
//fprintf(stderr, "HERE: %p\n", get_net());
|
||||||
char*rbuf = (char *) need_result_buf(64 + 1, RBUF_VAL);
|
static const size_t RBUF_USE_SIZE = 64 + 1;
|
||||||
|
char*rbuf = (char *) need_result_buf(RBUF_USE_SIZE, RBUF_VAL);
|
||||||
|
|
||||||
switch (val->format) {
|
switch (val->format) {
|
||||||
case vpiObjTypeVal:
|
case vpiObjTypeVal:
|
||||||
|
|
@ -79,7 +80,7 @@ void __vpiCobjectVar::vpi_get_value(p_vpi_value val)
|
||||||
case vpiOctStrVal:
|
case vpiOctStrVal:
|
||||||
case vpiHexStrVal:
|
case vpiHexStrVal:
|
||||||
case vpiStringVal:
|
case vpiStringVal:
|
||||||
sprintf(rbuf, " null");
|
snprintf(rbuf, RBUF_USE_SIZE, " null");
|
||||||
val->value.str = rbuf;
|
val->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -137,19 +137,26 @@ void __vpiStringConst::vpi_get_value(p_vpi_value vp)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiDecStrVal:
|
case vpiDecStrVal:
|
||||||
|
// Take the (up to 4) characters of the text, convert the characters
|
||||||
|
// to a numerical value, and convert that value to a decimal string.
|
||||||
|
// For example, the string "A" is ASCII 65, so the resulting string
|
||||||
|
// will be "65". and the string "AB" is 65*256 + 66 == 16706, so
|
||||||
|
// the resulting string is "16706". The "size" is the number of
|
||||||
|
// characters of input text to put to work.
|
||||||
if (size > 4){
|
if (size > 4){
|
||||||
// We only support standard integers. Ignore other bytes...
|
// We only support standard integers. Ignore other bytes...
|
||||||
size = 4;
|
size = 4;
|
||||||
fprintf(stderr, "Warning (vpi_const.cc): %%d on constant strings only looks "
|
fprintf(stderr, "Warning (vpi_const.cc): %%d on constant strings only looks "
|
||||||
"at first 4 bytes!\n");
|
"at first 4 bytes!\n");
|
||||||
}
|
}
|
||||||
rbuf = (char *) need_result_buf(size + 1, RBUF_VAL);
|
static const size_t RBUF_USE_SIZE = 12;
|
||||||
|
rbuf = (char *) need_result_buf(RBUF_USE_SIZE, RBUF_VAL);
|
||||||
uint_value = 0;
|
uint_value = 0;
|
||||||
for(unsigned i=0; i<size; i += 1){
|
for(unsigned i=0; i<size; i += 1){
|
||||||
uint_value <<=8;
|
uint_value <<=8;
|
||||||
uint_value += (unsigned char)(value_[i]);
|
uint_value += (unsigned char)(value_[i]);
|
||||||
}
|
}
|
||||||
sprintf(rbuf, "%u", uint_value);
|
snprintf(rbuf, RBUF_USE_SIZE, "%u", uint_value);
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -574,7 +581,8 @@ int __vpiDecConst::vpi_get(int code)
|
||||||
|
|
||||||
void __vpiDecConst::vpi_get_value(p_vpi_value vp)
|
void __vpiDecConst::vpi_get_value(p_vpi_value vp)
|
||||||
{
|
{
|
||||||
char*rbuf = (char *) need_result_buf(64 + 1, RBUF_VAL);
|
static const size_t RBUF_USE_SIZE = 64 + 1;
|
||||||
|
char*rbuf = (char *) need_result_buf(RBUF_USE_SIZE, RBUF_VAL);
|
||||||
char*cp = rbuf;
|
char*cp = rbuf;
|
||||||
|
|
||||||
switch (vp->format) {
|
switch (vp->format) {
|
||||||
|
|
@ -586,8 +594,7 @@ void __vpiDecConst::vpi_get_value(p_vpi_value vp)
|
||||||
}
|
}
|
||||||
|
|
||||||
case vpiDecStrVal:
|
case vpiDecStrVal:
|
||||||
sprintf(rbuf, "%d", value);
|
snprintf(rbuf, RBUF_USE_SIZE, "%d", value);
|
||||||
|
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -601,14 +608,12 @@ void __vpiDecConst::vpi_get_value(p_vpi_value vp)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiHexStrVal:
|
case vpiHexStrVal:
|
||||||
sprintf(rbuf, "%08x", value);
|
snprintf(rbuf, RBUF_USE_SIZE, "%08x", value);
|
||||||
|
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiOctStrVal:
|
case vpiOctStrVal:
|
||||||
sprintf(rbuf, "%011x", value);
|
snprintf(rbuf, RBUF_USE_SIZE, "%011x", value);
|
||||||
|
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -796,7 +801,8 @@ int __vpiNullConst::vpi_get(int code)
|
||||||
|
|
||||||
void __vpiNullConst::vpi_get_value(p_vpi_value val)
|
void __vpiNullConst::vpi_get_value(p_vpi_value val)
|
||||||
{
|
{
|
||||||
char*rbuf = (char *) need_result_buf(64 + 1, RBUF_VAL);
|
static const size_t RBUF_USE_SIZE = 64 + 1;
|
||||||
|
char*rbuf = (char *) need_result_buf(RBUF_USE_SIZE, RBUF_VAL);
|
||||||
|
|
||||||
switch (val->format) {
|
switch (val->format) {
|
||||||
|
|
||||||
|
|
@ -808,7 +814,7 @@ void __vpiNullConst::vpi_get_value(p_vpi_value val)
|
||||||
case vpiOctStrVal:
|
case vpiOctStrVal:
|
||||||
case vpiHexStrVal:
|
case vpiHexStrVal:
|
||||||
case vpiStringVal:
|
case vpiStringVal:
|
||||||
sprintf(rbuf, "null");
|
snprintf(rbuf, RBUF_USE_SIZE, "null");
|
||||||
val->value.str = rbuf;
|
val->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -320,7 +320,7 @@ static const char* vpi_property_str(PLI_INT32 code)
|
||||||
case vpiSize:
|
case vpiSize:
|
||||||
return "vpiSize";
|
return "vpiSize";
|
||||||
default:
|
default:
|
||||||
sprintf(buf, "%d", (int)code);
|
snprintf(buf, sizeof(buf), "%d", (int)code);
|
||||||
}
|
}
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
@ -402,7 +402,7 @@ const char* vpi_type_as_string(PLI_INT32 code)
|
||||||
case vpiUserSystf:
|
case vpiUserSystf:
|
||||||
return "vpiUserSystf";
|
return "vpiUserSystf";
|
||||||
default:
|
default:
|
||||||
sprintf(buf, "%d", (int)code);
|
snprintf(buf, sizeof(buf), "%d", (int)code);
|
||||||
}
|
}
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,8 @@ static void timevar_get_value(vpiHandle ref, s_vpi_value*vp, bool is_int_func,
|
||||||
vvp_time64_t x, simtime = schedule_simtime();
|
vvp_time64_t x, simtime = schedule_simtime();
|
||||||
int units = rfp->scope? rfp->scope->time_units : vpi_time_precision;
|
int units = rfp->scope? rfp->scope->time_units : vpi_time_precision;
|
||||||
|
|
||||||
char*rbuf = (char *) need_result_buf(128, RBUF_VAL);
|
static const size_t RBUF_USE_SIZE = 128;
|
||||||
|
char*rbuf = (char *) need_result_buf(RBUF_USE_SIZE, RBUF_VAL);
|
||||||
|
|
||||||
/* Calculate the divisor needed to scale the simulation time
|
/* Calculate the divisor needed to scale the simulation time
|
||||||
(in time_precision units) to time units of the scope. */
|
(in time_precision units) to time units of the scope. */
|
||||||
|
|
@ -162,17 +163,17 @@ static void timevar_get_value(vpiHandle ref, s_vpi_value*vp, bool is_int_func,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiDecStrVal:
|
case vpiDecStrVal:
|
||||||
sprintf(rbuf, "%" TIME_FMT_U, simtime);
|
snprintf(rbuf, RBUF_USE_SIZE, "%" TIME_FMT_U, simtime);
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiOctStrVal:
|
case vpiOctStrVal:
|
||||||
sprintf(rbuf, "%" TIME_FMT_O, simtime);
|
snprintf(rbuf, RBUF_USE_SIZE, "%" TIME_FMT_O, simtime);
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiHexStrVal:
|
case vpiHexStrVal:
|
||||||
sprintf(rbuf, "%" TIME_FMT_X, simtime);
|
snprintf(rbuf, RBUF_USE_SIZE, "%" TIME_FMT_X, simtime);
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,8 @@ static double vlg_round(double rval)
|
||||||
static void vthr_real_get_value(vpiHandle ref, s_vpi_value*vp)
|
static void vthr_real_get_value(vpiHandle ref, s_vpi_value*vp)
|
||||||
{
|
{
|
||||||
__vpiVThrWord*obj = dynamic_cast<__vpiVThrWord*>(ref);
|
__vpiVThrWord*obj = dynamic_cast<__vpiVThrWord*>(ref);
|
||||||
char *rbuf = (char *) need_result_buf(66, RBUF_VAL);
|
static const size_t RBUF_USE_SIZE = 66;
|
||||||
|
char *rbuf = (char *) need_result_buf(RBUF_USE_SIZE, RBUF_VAL);
|
||||||
|
|
||||||
double val = 0.0;
|
double val = 0.0;
|
||||||
|
|
||||||
|
|
@ -133,19 +134,19 @@ static void vthr_real_get_value(vpiHandle ref, s_vpi_value*vp)
|
||||||
|
|
||||||
case vpiDecStrVal:
|
case vpiDecStrVal:
|
||||||
if (std::isnan(val))
|
if (std::isnan(val))
|
||||||
sprintf(rbuf, "%s", "nan");
|
snprintf(rbuf, RBUF_USE_SIZE, "%s", "nan");
|
||||||
else
|
else
|
||||||
sprintf(rbuf, "%0.0f", vlg_round(val));
|
snprintf(rbuf, RBUF_USE_SIZE, "%0.0f", vlg_round(val));
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiOctStrVal:
|
case vpiOctStrVal:
|
||||||
sprintf(rbuf, "%" PRIo64, (uint64_t)vlg_round(val));
|
snprintf(rbuf, RBUF_USE_SIZE, "%" PRIo64, (uint64_t)vlg_round(val));
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case vpiHexStrVal:
|
case vpiHexStrVal:
|
||||||
sprintf(rbuf, "%" PRIx64, (uint64_t)vlg_round(val));
|
snprintf(rbuf, RBUF_USE_SIZE, "%" PRIx64, (uint64_t)vlg_round(val));
|
||||||
vp->value.str = rbuf;
|
vp->value.str = rbuf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue