X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=model.cc;h=b539aba6beba1339231a4f0c10cbf2e996a76f0e;hb=15190694fd79202132be5f6e056fa5c00893664e;hp=6732c265e9534a426a0aed9391303a2754faeda6;hpb=85fac9c01a7269fe0a879f97155f9c5976672606;p=model-checker.git diff --git a/model.cc b/model.cc index 6732c26..b539aba 100644 --- 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: {