Edits
[c11tester.git] / predicate.cc
index e87c695bedadccfd908c31aa4524c56082833142..9b329f105cb9e9b8169a1c8b770ee857b11f5207 100644 (file)
@@ -8,7 +8,7 @@ Predicate::Predicate(FuncInst * func_inst, bool is_entry, bool is_exit) :
        exit_predicate(is_exit),
        does_write(false),
        depth(0),
-       weight(0),
+       weight(100),
        exploration_count(0),
        store_visible_count(0),
        total_checking_count(0),
@@ -87,9 +87,10 @@ void Predicate::copy_predicate_expr(Predicate * other)
  */
 Predicate * Predicate::follow_write_child(FuncInst * inst)
 {
-       ASSERT(inst->get_type() == ATOMIC_WRITE);
+       action_type type = inst->get_type();
+       ASSERT(type == ATOMIC_WRITE || type == ATOMIC_INIT);
 
-       for (uint i = 0; i < children.size(); i++) {
+       for (uint i = 0;i < children.size();i++) {
                Predicate * child = children[i];
                if (child->get_func_inst() == inst)
                        return child;
@@ -99,8 +100,9 @@ Predicate * Predicate::follow_write_child(FuncInst * inst)
 }
 
 /* Evaluate predicate expressions against the given inst_act_map */
-ConcretePredicate * Predicate::evaluate(inst_act_map_t * inst_act_map, thread_id_t tid)
+ConcretePredicate * Predicate::evaluate(thread_id_t tid)
 {
+       /*
        ConcretePredicate * concrete = new ConcretePredicate(tid);
        PredExprSetIter * it = pred_expressions.iterator();
 
@@ -130,6 +132,9 @@ ConcretePredicate * Predicate::evaluate(inst_act_map_t * inst_act_map, thread_id
 
        delete it;
        return concrete;
+       */
+
+       return NULL;
 }
 
 void Predicate::print_predicate()