From d62a307c3437db15f87afcfff7adaf0f62d0ddd1 Mon Sep 17 00:00:00 2001 From: Cary R Date: Fri, 5 Dec 2014 17:58:01 -0800 Subject: [PATCH] Fix 32-bit issue in vector4_to_value() --- vvp/vvp_net.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vvp/vvp_net.cc b/vvp/vvp_net.cc index 15f6fa5b3..3c34d941e 100644 --- a/vvp/vvp_net.cc +++ b/vvp/vvp_net.cc @@ -1652,8 +1652,8 @@ ostream& operator<< (ostream&out, const vvp_vector4_t&that) template bool vector4_to_value(const vvp_vector4_t&vec, INT&val, bool is_signed, bool is_arithmetic) { - long res = 0; - INT msk = 1; + INT res = 0; + INT msk = 1; bool rc_flag = true; unsigned size = vec.size(); @@ -1672,12 +1672,12 @@ template bool vector4_to_value(const vvp_vector4_t&vec, INT&val, rc_flag = false; } - msk <<= 1L; + msk <<= 1; } if (is_signed && vec.value(vec.size()-1) == BIT4_1) { if (vec.size() < 8*sizeof(val)) - res |= (INT)(-1L) << vec.size(); + res |= (~static_cast(0)) << vec.size(); } val = res;