* @param size
* @param check_ignore
*/
-static int compare_heap_area_without_type(simgrid::mc::StateComparator& state, const void* real_area1,
- const void* real_area2, simgrid::mc::Snapshot* snapshot1,
- simgrid::mc::Snapshot* snapshot2, HeapLocationPairs* previous, int size,
- int check_ignore)
+static bool heap_area_equal_without_type(simgrid::mc::StateComparator& state, const void* real_area1,
+ const void* real_area2, simgrid::mc::Snapshot* snapshot1,
+ simgrid::mc::Snapshot* snapshot2, HeapLocationPairs* previous, int size,
+ int check_ignore)
{
simgrid::mc::RemoteClient* process = &mc_model_checker->process();
simgrid::mc::Region* heap_region1 = MC_get_heap_region(snapshot1);
if (ignore2 == ignore1) {
if (ignore1 == 0) {
check_ignore--;
- return 0;
+ return true;
} else {
i = i + ignore2;
check_ignore--;
&& addr_pointed1 < mc_snapshot_get_heap_end(snapshot1)
&& addr_pointed2 > state.std_heap_copy.heapbase
&& addr_pointed2 < mc_snapshot_get_heap_end(snapshot2)) {
- // Both addreses are in the heap:
+ // Both addresses are in the heap:
int res_compare =
compare_heap_area(state, addr_pointed1, addr_pointed2, snapshot1, snapshot2, previous, nullptr, 0);
if (res_compare == 1)
- return res_compare;
+ return false;
i = pointer_align + sizeof(void *);
continue;
}
- return 1;
+ return false;
}
i++;
}
- return 0;
+ return true;
}
/**
return 0;
case DW_TAG_union_type:
- return compare_heap_area_without_type(state, real_area1, real_area2, snapshot1, snapshot2, previous,
- type->byte_size, check_ignore);
+ return not heap_area_equal_without_type(state, real_area1, real_area2, snapshot1, snapshot2, previous,
+ type->byte_size, check_ignore);
}
return 0;
}
check_ignore, pointer_level);
else
res_compare =
- compare_heap_area_without_type(state, area1, area2, snapshot1, snapshot2, previous, size, check_ignore);
+ not heap_area_equal_without_type(state, area1, area2, snapshot1, snapshot2, previous, size, check_ignore);
if (res_compare == 1)
return res_compare;
current_var2->subprogram->name.c_str(), current_var1->ip, current_var2->ip);
return false;
}
- // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
if (compare_areas_with_type(state, current_var1->address, snapshot1, snapshot1->get_region(current_var1->address),
current_var2->address, snapshot2, snapshot2->get_region(current_var2->address),
current_var1->type, 0) == 1) {
- // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
XBT_VERB("Local variable %s (%p - %p) in frame %s "
"is different between snapshots",
current_var1->name.c_str(), current_var1->address, current_var2->address,