Change the return type of Predicate::evaluate
[c11tester.git] / funcnode.cc
index d328a4c5d24f6753fe0faf9338e153bc7284072a..8cd81423f710e9fa222ce3892ab2f91808cbb8a9 100644 (file)
@@ -1,4 +1,6 @@
+#include "history.h"
 #include "funcnode.h"
+#include "concretepredicate.h"
 
 FuncNode::FuncNode(ModelHistory * history) :
        history(history),
@@ -331,9 +333,10 @@ bool FuncNode::follow_branch(Predicate ** curr_pred, FuncInst * next_inst, Model
                        unset_predicates->push_back(branch);
                }
 
-               SnapVector<struct concrete_pred_expr> concrete_exprs = branch->evaluate(inst_act_map);
-               for (uint i = 0; i < concrete_exprs.size(); i++) {
-                       struct concrete_pred_expr concrete = concrete_exprs[i];
+               ConcretePredicate * concrete_pred = branch->evaluate(inst_act_map, next_act->get_tid());
+               SnapVector<struct concrete_pred_expr> * concrete_exprs = concrete_pred->getExpressions();
+               for (uint i = 0; i < concrete_exprs->size(); i++) {
+                       struct concrete_pred_expr concrete = (*concrete_exprs)[i];
                        uint64_t next_read;
                        bool equality;