Get signed-ness of property correct in certain situations.

This commit is contained in:
Stephen Williams 2013-01-06 16:06:30 -08:00
parent 0375ff3923
commit 2ea5919a4a
2 changed files with 4 additions and 2 deletions

View File

@ -357,6 +357,7 @@ NetEProperty::NetEProperty(NetNet*net, perm_string pnam)
pidx_ = use_type->property_idx_from_name(pnam); pidx_ = use_type->property_idx_from_name(pnam);
ivl_type_t prop_type = use_type->get_prop_type(pidx_); ivl_type_t prop_type = use_type->get_prop_type(pidx_);
expr_width(prop_type->packed_width()); expr_width(prop_type->packed_width());
cast_signed(prop_type->get_signed());
} }
NetEProperty::~NetEProperty() NetEProperty::~NetEProperty()

View File

@ -209,9 +209,10 @@ static void show_property_expression(ivl_expr_t net, unsigned ind)
{ {
ivl_signal_t sig = ivl_expr_signal(net); ivl_signal_t sig = ivl_expr_signal(net);
const char* pnam = ivl_expr_name(net); const char* pnam = ivl_expr_name(net);
char*signed_flag = ivl_expr_signed(net)? "signed" : "unsigned";
fprintf(out, "%*s<property base=%s, prop=%s, width=%u>\n", ind, "", fprintf(out, "%*s<property base=%s, prop=%s, width=%u, %s>\n", ind, "",
ivl_signal_basename(sig), pnam, ivl_expr_width(net)); ivl_signal_basename(sig), pnam, ivl_expr_width(net), signed_flag);
if (ivl_signal_data_type(sig) != IVL_VT_CLASS) { if (ivl_signal_data_type(sig) != IVL_VT_CLASS) {
fprintf(out, "%*sERROR: Property signal must be IVL_VT_CLASS, got %s.\n", fprintf(out, "%*sERROR: Property signal must be IVL_VT_CLASS, got %s.\n",
ind+3, "", data_type_string(ivl_signal_data_type(sig))); ind+3, "", data_type_string(ivl_signal_data_type(sig)));