fix bug in memset() with > 4 bytes
MODIFY
CMakeLists.txt
CMakeLists.txt
@@ -30,7 +30,7 @@ if (CYGWIN)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
endif()
-find_package(Z3 4.8.1 REQUIRED)
+find_package(Z3 4.8.4 REQUIRED)
include_directories(${Z3_INCLUDE_DIR})
find_program(RE2C re2c)

MODIFY
ir/memory.cpp
ir/memory.cpp
@@ -292,7 +292,7 @@ void Memory::memset(const expr &p, const StateValue &val, const expr &bytes,
Pointer idx(*this, expr::mkVar(name.c_str(), ptr.bits()));
expr cond = idx.uge(ptr).both() && idx.ult(ptr + bytes).both();
- expr val = expr::mkIf(cond, blocks_val.store(idx(), store_val), blocks_val);
+ expr val = expr::mkIf(cond, store_val, blocks_val.load(idx()));
blocks_val = expr::mkLambda({ idx() }, move(val));
}
}

fix bug in memset() with > 4 bytes