merge stuff
[c11tester.git] / model.cc
index 6732c265e9534a426a0aed9391303a2754faeda6..b539aba6beba1339231a4f0c10cbf2e996a76f0e 100644 (file)
--- a/model.cc
+++ b/model.cc
@@ -419,6 +419,7 @@ ModelAction * ModelChecker::initialize_curr_action(ModelAction *curr)
                        newcurr->copy_typeandorder(curr);
 
                ASSERT(curr->get_location()==newcurr->get_location());
+
                /* Discard duplicate ModelAction; use action from NodeStack */
                delete curr;
 
@@ -489,6 +490,15 @@ Thread * ModelChecker::check_current_action(ModelAction *curr)
                build_reads_from_past(curr);
        curr = newcurr;
 
+       /* Add the action to lists before any other model-checking tasks */
+       if (!second_part_of_rmw)
+               add_action_to_lists(newcurr);
+
+       /* Build may_read_from set for newly-created actions */
+       if (curr == newcurr && curr->is_read())
+               build_reads_from_past(curr);
+       curr = newcurr;
+
        /* Thread specific actions */
        switch (curr->get_type()) {
        case THREAD_CREATE: {