diff --git a/src/util/hwf.cpp b/src/util/hwf.cpp index 0c1e2d3de..3963836f2 100644 --- a/src/util/hwf.cpp +++ b/src/util/hwf.cpp @@ -85,9 +85,8 @@ hwf_manager::~hwf_manager() { } -// #define RAW(X) (*reinterpret_cast(&(X))) -#define RAW(X) ({ uint64 tmp; memcpy(&tmp, &(X), sizeof(uint64)); tmp; }) -#define DBL(X) ({ double tmp; memcpy(&tmp, &(X), sizeof(double)); tmp; }) +uint64 RAW(double X) { uint64 tmp; memcpy(&tmp, &(X), sizeof(uint64)); return tmp; } +double DBL(uint64 X) { double tmp; memcpy(&tmp, &(X), sizeof(double)); return tmp; } void hwf_manager::set(hwf & o, int value) { o.value = (double) value; diff --git a/src/util/mpfx.cpp b/src/util/mpfx.cpp index f9a51ebd7..41ed93617 100644 --- a/src/util/mpfx.cpp +++ b/src/util/mpfx.cpp @@ -200,8 +200,9 @@ void mpfx_manager::set(mpfx & n, uint64 v) { allocate_if_needed(n); n.m_sign = 0; unsigned * w = words(n); + uint64 * _vp = &v; unsigned * _v = 0; - memcpy(_v, &v, sizeof(unsigned*)); + memcpy(&_v, &_vp, sizeof(unsigned*)); for (unsigned i = 0; i < m_total_sz; i++) w[i] = 0; w[m_frac_part_sz] = _v[0];