Make sure that actions that do writes are labeled correctly in predicate trees
[c11tester.git] / predicate.cc
index 5695452853f93cbc5c887c25acdff6c9e63fc4cd..5cc0219c4b14e36033953d9d1bc37b8773f583ef 100644 (file)
@@ -3,6 +3,7 @@
 Predicate::Predicate(FuncInst * func_inst, bool is_entry) :
        func_inst(func_inst),
        entry_predicate(is_entry),
 Predicate::Predicate(FuncInst * func_inst, bool is_entry) :
        func_inst(func_inst),
        entry_predicate(is_entry),
+       does_write(false),
        pred_expressions(16),
        children(),
        parent(NULL),
        pred_expressions(16),
        children(),
        parent(NULL),
@@ -11,10 +12,7 @@ Predicate::Predicate(FuncInst * func_inst, bool is_entry) :
 
 Predicate::~Predicate()
 {
 
 Predicate::~Predicate()
 {
-//     if (func_inst)
-//             delete func_inst;
-
-       // parent should not be deleted
+       // parent and func_inst should not be deleted
        pred_expressions.reset();
        backedges.reset();
        children.clear();
        pred_expressions.reset();
        backedges.reset();
        children.clear();
@@ -92,6 +90,10 @@ void Predicate::print_predicate()
                                break;
                }
        }
                                break;
                }
        }
+
+       if (does_write) {
+               model_print("Does write\n");
+       }
        model_print("\"];\n");
 }
 
        model_print("\"];\n");
 }