From: weiyu <weiyuluo1232@gmail.com>
Date: Tue, 20 Aug 2019 00:23:22 +0000 (-0700)
Subject: memory locations should not outlive executions
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ae748e575b38eb2dbeb5c3e038ef34375a735e9e;p=c11tester.git

memory locations should not outlive executions
---

diff --git a/classlist.h b/classlist.h
index 855f05fd..664301e9 100644
--- a/classlist.h
+++ b/classlist.h
@@ -26,6 +26,8 @@ typedef SnapList<uint32_t> func_id_list_t;
 typedef SnapList<FuncInst *> func_inst_list_t;
 typedef HSIterator<Predicate *, uintptr_t, 0, model_malloc, model_calloc, model_free> PredSetIter;
 typedef HashSet<Predicate *, uintptr_t, 0, model_malloc, model_calloc, model_free> PredSet;
+typedef HSIterator<uint64_t, uint64_t, 0, model_malloc, model_calloc, model_free> write_set_iter;
+typedef HashSet<uint64_t, uint64_t, 0, model_malloc, model_calloc, model_free> write_set_t;
 
 extern volatile int modellock;
 #endif
diff --git a/history.h b/history.h
index 2edf12a8..5f5e7318 100644
--- a/history.h
+++ b/history.h
@@ -7,7 +7,6 @@
 #include "hashset.h"
 #include "threads-model.h"
 
-typedef HashSet<uint64_t, uint64_t, 0, model_malloc, model_calloc, model_free> write_set_t;
 
 class ModelHistory {
 public:
@@ -31,6 +30,7 @@ public:
 	uint64_t query_last_read(void * location, thread_id_t tid);
 
 	void add_to_write_history(void * location, uint64_t write_val);
+	HashTable<void *, write_set_t *, uintptr_t, 4> * getWriteHistory() { return &write_history; }
 
 	void print_write();
 	void print_func_node();
@@ -46,8 +46,8 @@ private:
 
 	ModelVector<FuncNode *> func_nodes;
 
-	HashTable<void *, write_set_t *, uintptr_t, 4, model_malloc, model_calloc, model_free> write_history;
-	HashSet<void *, uintptr_t, 4, model_malloc, model_calloc, model_free> write_locations;
+	HashTable<void *, write_set_t *, uintptr_t, 4> write_history;
+	HashSet<void *, uintptr_t, 4> write_locations;
 };
 
 #endif	/* __HISTORY_H__ */