]> AND Public Git Repository - simgrid.git/blobdiff - src/mc/transition/Transition.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge selected changes from branch 'simgrid-Jesse-McDonald-master-patch-09242'
[simgrid.git] / src / mc / transition / Transition.cpp
index 64cb123651f8228baa498f8f49c360fde10fb596..3fb8ced4ac329b5d8d532b8c02a8e110d63326b8 100644 (file)
@@ -20,8 +20,7 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_transition, mc, "Logging specific to MC transitions");
 
-namespace simgrid {
-namespace mc {
+namespace simgrid::mc {
 unsigned long Transition::executed_transitions_ = 0;
 unsigned long Transition::replayed_transitions_ = 0;
 
@@ -57,12 +56,8 @@ Transition* deserialize_transition(aid_t issuer, int times_considered, std::stri
 #if SIMGRID_HAVE_MC
   short type;
   xbt_assert(stream >> type);
-  xbt_assert(type >= 0 && type <= static_cast<short>(Transition::Type::UNKNOWN), "Invalid transition type %d received",
-             type);
 
-  auto simcall = static_cast<Transition::Type>(type);
-
-  switch (simcall) {
+  switch (auto simcall = static_cast<Transition::Type>(type)) {
     case Transition::Type::BARRIER_LOCK:
     case Transition::Type::BARRIER_WAIT:
       return new BarrierTransition(issuer, times_considered, simcall, stream);
@@ -98,12 +93,14 @@ Transition* deserialize_transition(aid_t issuer, int times_considered, std::stri
 
     case Transition::Type::UNKNOWN:
       return new Transition(Transition::Type::UNKNOWN, issuer, times_considered);
+
+    default:
+      break;
   }
-  THROW_IMPOSSIBLE; // Some compilers don't detect that each branch of the above switch has a return
+  xbt_die("Invalid transition type %d received", type);
 #else
   xbt_die("Deserializing transitions is only interesting in MC mode.");
 #endif
 }
 
-} // namespace mc
-} // namespace simgrid
+} // namespace simgrid::mc