model: only backtrack fences when acquire is before release
[model-checker.git] / datarace.h
index 5bfcb8ad48cc98d007612805c2cc48567dedf984..d1f91b2057e2f98834f633766a71963dfa632187 100644 (file)
@@ -5,8 +5,12 @@
 #ifndef DATARACE_H
 #include "config.h"
 #include <stdint.h>
-#include "clockvector.h"
 #include <vector>
+#include "modeltypes.h"
+
+/* Forward declaration */
+class ClockVector;
+class ModelAction;
 
 struct ShadowTable {
        void * array[65536];
@@ -32,16 +36,16 @@ struct DataRace {
        bool isnewwrite;
 
        /* Address of data race. */
-       void *address;
+       const void *address;
 };
 
 #define MASK16BIT 0xffff
 
 void initRaceDetector();
 void raceCheckWrite(thread_id_t thread, void *location, ClockVector *currClock);
-void raceCheckRead(thread_id_t thread, void *location, ClockVector *currClock);
+void raceCheckRead(thread_id_t thread, const void *location, ClockVector *currClock);
 bool checkDataRaces();
-void printRace(struct DataRace *race);
+void assert_race(struct DataRace *race);
 
 extern std::vector<struct DataRace *> unrealizedraces;