datarace: use variable-argument bug-printing
[model-checker.git] / datarace.cc
index e6784984c05ba2d8a92f438384d95ece5a8cc666..9f75642e27a5a670d30e0c9284e6162cfa8047de 100644 (file)
@@ -150,16 +150,18 @@ bool checkDataRaces()
  */
 void assert_race(struct DataRace *race)
 {
-       char buf[200];
-       char *ptr = buf;
-       ptr += sprintf(ptr, "Data race detected @ address %p:\n", race->address);
-       ptr += sprintf(ptr, "    Access 1: %5s in thread %2d @ clock %3u\n",
+       model->assert_bug(
+                       "Data race detected @ address %p:\n"
+                       "    Access 1: %5s in thread %2d @ clock %3u\n"
+                       "    Access 2: %5s in thread %2d @ clock %3u",
+                       race->address,
                        race->isoldwrite ? "write" : "read",
-                       id_to_int(race->oldthread), race->oldclock);
-       ptr += sprintf(ptr, "    Access 2: %5s in thread %2d @ clock %3u",
+                       id_to_int(race->oldthread),
+                       race->oldclock,
                        race->isnewwrite ? "write" : "read",
-                       id_to_int(race->newaction->get_tid()), race->newaction->get_seq_number());
-       model->assert_bug(buf);
+                       id_to_int(race->newaction->get_tid()),
+                       race->newaction->get_seq_number()
+               );
 }
 
 /** This function does race detection for a write on an expanded record. */