model_print("BRF ");
act->print();
if (badrfset.contains(act)) {
- model_print("Desired Rf: %u \n",badrfset.get(act)->get_seq_number());
+ model_print("Desired Rf: %u \n", badrfset.get(act)->get_seq_number());
}
}
hash = hash ^ (hash << 3) ^ ((*it)->hash());
for (action_list_t::iterator it = list->begin(); it != list->end(); it++) {
const ModelAction *act = *it;
if (act->is_read()) {
- if (act->get_reads_from()!=lastwrmap.get(act->get_location()))
- badrfset.put(act,lastwrmap.get(act->get_location()));
+ if (act->get_reads_from() != lastwrmap.get(act->get_location()))
+ badrfset.put(act, lastwrmap.get(act->get_location()));
}
if (act->is_write())
lastwrmap.put(act->get_location(), act);
}
bool SCAnalysis::merge(ClockVector *cv, const ModelAction *act, const ModelAction *act2) {
- ClockVector * cv2=cvmap.get(act2);
- if (cv2==NULL)
+ ClockVector *cv2 = cvmap.get(act2);
+ if (cv2 == NULL)
return true;
if (cv2->getClock(act->get_tid()) >= act->get_seq_number() && act->get_seq_number() != 0) {
- cyclic=true;
+ cyclic = true;
//refuse to introduce cycles into clock vectors
return false;
}
write -rf-> R =>
write2 -sc-> write */
if (cv->synchronized_since(write2)) {
- changed |= writecv==NULL || merge(writecv, write, write2);
+ changed |= writecv == NULL || merge(writecv, write, write2);
break;
}
}
atomic_int y;
atomic_int z;
+static int r1, r2, r3;
+
static void a(void *obj)
{
atomic_store_explicit(&z, 1, memory_order_relaxed);
{
atomic_store_explicit(&x, 1, memory_order_relaxed);
atomic_store_explicit(&y, 1, memory_order_relaxed);
- int r1=atomic_load_explicit(&z, memory_order_relaxed);
+ r1=atomic_load_explicit(&z, memory_order_relaxed);
}
static void c(void *obj)
{
atomic_store_explicit(&z, 2, memory_order_relaxed);
atomic_store_explicit(&x, 2, memory_order_relaxed);
- int r2=atomic_load_explicit(&y, memory_order_relaxed);
+ r2=atomic_load_explicit(&y, memory_order_relaxed);
}
static void d(void *obj)
{
atomic_store_explicit(&z, 3, memory_order_relaxed);
atomic_store_explicit(&y, 2, memory_order_relaxed);
- int r3=atomic_load_explicit(&x, memory_order_relaxed);
+ r3=atomic_load_explicit(&x, memory_order_relaxed);
}
int user_main(int argc, char **argv)
thrd_join(t3);
thrd_join(t4);
+ /* Check and/or print r1, r2, r3? */
+
return 0;
}