@@ -106,22 +106,26 @@ std::string MemoryObject::getAllocInfo() const {
106106
107107/* **/
108108
109- ObjectState::ObjectState (const MemoryObject *mo, const Array *array, KType *dt)
109+ ObjectState::ObjectState (const MemoryObject *mo, const Array *array, KType *dt,
110+ ref<Expr> defaultTaintValue)
110111 : copyOnWriteOwner(0 ), object(mo), valueOS(ObjectStage(array, nullptr )),
111112 baseOS(ObjectStage(array->size, Expr::createPointer(0 ), false,
112113 Context::get().getPointerWidth())),
113- taintOS(ObjectStage(array->size, Expr::createEmptyTaint(), false, Expr::TaintWidth)),
114+ taintOS(
115+ ObjectStage (array->size, defaultTaintValue, false , Expr::TaintWidth)),
114116 lastUpdate(nullptr ), size(array->size), dynamicType(dt), readOnly(false ) {
115117 baseOS.initializeToZero ();
116118 taintOS.initializeToZero ();
117119}
118120
119- ObjectState::ObjectState (const MemoryObject *mo, KType *dt)
121+ ObjectState::ObjectState (const MemoryObject *mo, KType *dt,
122+ ref<Expr> defaultTaintValue)
120123 : copyOnWriteOwner(0 ), object(mo),
121124 valueOS(ObjectStage(mo->getSizeExpr (), nullptr)),
122125 baseOS(ObjectStage(mo->getSizeExpr (), Expr::createPointer(0 ), false,
123126 Context::get().getPointerWidth())),
124- taintOS(ObjectStage(mo->getSizeExpr (), Expr::createEmptyTaint(), false, Expr::TaintWidth)),
127+ taintOS(ObjectStage(mo->getSizeExpr (), defaultTaintValue, false,
128+ Expr::TaintWidth)),
125129 lastUpdate(nullptr ), size(mo->getSizeExpr ()), dynamicType(dt),
126130 readOnly(false ) {
127131 baseOS.initializeToZero ();
0 commit comments