struct ShadowTable *currtable=root;
#if BIT48
currtable=(struct ShadowTable *) currtable->array[(((uintptr_t)address)>>32)&MASK16BIT];
struct ShadowTable *currtable=root;
#if BIT48
currtable=(struct ShadowTable *) currtable->array[(((uintptr_t)address)>>32)&MASK16BIT];
-static void reportDataRace(thread_id_t oldthread, modelclock_t oldclock, bool isoldwrite, ModelAction *newaction, bool isnewwrite, void *address) {
+static void reportDataRace(thread_id_t oldthread, modelclock_t oldclock, bool isoldwrite, ModelAction *newaction, bool isnewwrite, const void *address) {
struct DataRace *race = (struct DataRace *)snapshot_malloc(sizeof(struct DataRace));
race->oldthread=oldthread;
race->oldclock=oldclock;
struct DataRace *race = (struct DataRace *)snapshot_malloc(sizeof(struct DataRace));
race->oldthread=oldthread;
race->oldclock=oldclock;
unrealizedraces.push_back(race);
/* If the race is realized, bail out now. */
unrealizedraces.push_back(race);
/* If the race is realized, bail out now. */
printf(" Access 1: %5s in thread %2d @ clock %3u\n",
race->isoldwrite ? "write" : "read",
id_to_int(race->oldthread), race->oldclock);
printf(" Access 1: %5s in thread %2d @ clock %3u\n",
race->isoldwrite ? "write" : "read",
id_to_int(race->oldthread), race->oldclock);
-void fullRaceCheckRead(thread_id_t thread, void *location, uint64_t * shadow, ClockVector *currClock) {
+void fullRaceCheckRead(thread_id_t thread, const void *location, uint64_t * shadow, ClockVector *currClock) {
struct RaceRecord * record=(struct RaceRecord *) (*shadow);
/* Check for datarace against last write. */
struct RaceRecord * record=(struct RaceRecord *) (*shadow);
/* Check for datarace against last write. */