#include "clockvector.h"
#include "common.h"
#include "threads-model.h"
-#include "nodestack.h"
#include "wildcard.h"
#define ACTION_INITIAL_CLOCK 0
position(NULL),
reads_from(NULL),
last_fence_release(NULL),
- node(NULL),
+ uninitaction(NULL),
cv(NULL),
+ rf_cv(NULL),
value(value),
type(type),
order(order),
position(NULL),
reads_from(NULL),
last_fence_release(NULL),
- node(NULL),
+ uninitaction(NULL),
cv(NULL),
+ rf_cv(NULL),
value(value),
type(type),
order(order),
position(position),
reads_from(NULL),
last_fence_release(NULL),
- node(NULL),
+ uninitaction(NULL),
cv(NULL),
+ rf_cv(NULL),
value(value),
type(type),
order(order),
position(position),
reads_from(NULL),
last_fence_release(NULL),
- node(NULL),
+ uninitaction(NULL),
cv(NULL),
+ rf_cv(NULL),
value(value),
type(type),
order(order),
return value;
}
-/** @return The Node associated with this ModelAction */
-Node * ModelAction::get_node() const
-{
- /* UNINIT actions do not have a Node */
- ASSERT(!is_uninitialized());
- return node;
-}
-
/**
* Update the model action's read_from action
* @param act The action to read from; should be a write
*/
-void ModelAction::set_read_from(const ModelAction *act)
+void ModelAction::set_read_from(ModelAction *act)
{
ASSERT(act);
uint64_t val = *((uint64_t *) location);
ModelAction * act_initialized = (ModelAction *)act;
act_initialized->set_value(val);
- reads_from = (const ModelAction *)act_initialized;
+ reads_from = act_initialized;
// disabled by WL, because LLVM IR is unable to detect atomic init
/* model->assert_bug("May read from uninitialized atomic:\n"