-/* Copyright (c) 2015-2016. The SimGrid Team.
+/* Copyright (c) 2015-2017. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
T get()
{
switch (status_) {
- case ResultStatus::invalid:
- default:
- throw std::logic_error("Invalid result");
case ResultStatus::value: {
T value = std::move(value_);
value_.~T();
std::rethrow_exception(std::move(exception));
break;
}
+ default:
+ throw std::logic_error("Invalid result");
}
}
private:
static void restore(mc_mem_region_t region)
{
switch(region->storage_type()) {
- case simgrid::mc::StorageType::NoData:
- default:
- xbt_die("Storage type not supported");
- break;
-
case simgrid::mc::StorageType::Flat:
mc_model_checker->process().write_bytes(region->flat_data().get(),
region->size(), region->permanent_address());
for (auto& p : region->privatized_data())
restore(&p);
break;
+
+ default: // includes StorageType::NoData
+ xbt_die("Storage type not supported");
+ break;
}
}
(uint64_t) type->id, type->name.c_str());
break;
}
- case simgrid::dwarf::FormClass::LocListPtr:
- // Reference to a location list:
- // TODO
- case simgrid::dwarf::FormClass::Reference:
- // It's supposed to be possible in DWARF2 but I couldn't find its semantic
- // in the spec.
+
default:
+ // includes FormClass::LocListPtr (reference to a location list: TODO) and FormClass::Reference (it's supposed to be
+ // possible in DWARF2 but I couldn't find its semantic in the spec)
xbt_die("Can't handle form class (%d) / form 0x%x as DW_AT_member_location", (int)form_class, (unsigned)form);
}
int form = dwarf_whatform(&attr);
simgrid::dwarf::FormClass form_class = simgrid::dwarf::classify_form(form);
switch (form_class) {
- case simgrid::dwarf::FormClass::Constant:
- {
+ case simgrid::dwarf::FormClass::Constant: {
Dwarf_Word value;
variable->start_scope =
dwarf_formudata(&attr, &value) == 0 ? (size_t) value : 0;
break;
}
- case simgrid::dwarf::FormClass::RangeListPtr: // TODO
- default:
- xbt_die("Unhandled form 0x%x, class 0x%X for DW_AT_start_scope of variable %s", (unsigned)form,
- (unsigned)form_class, name == nullptr ? "?" : name);
+ default: // includes FormClass::RangeListPtr (TODO)
+ xbt_die("Unhandled form 0x%x, class 0x%X for DW_AT_start_scope of variable %s", (unsigned)form,
+ (unsigned)form_class, name == nullptr ? "?" : name);
}
}
simgrid::mc::RegionSnapshot& subregion = region->privatized_data()[process_index];
return mc_translate_address_region(addr, &subregion, process_index);
}
- case simgrid::mc::StorageType::NoData:
- default:
+ default: // includes StorageType::NoData
xbt_die("Storage type not supported");
}
}
xbt_assert(region->contain(simgrid::mc::remote(addr)), "Trying to read out of the region boundary.");
switch (region->storage_type()) {
- case simgrid::mc::StorageType::NoData:
- default:
- xbt_die("Storage type not supported");
-
case simgrid::mc::StorageType::Flat:
return (char*)region->flat_data().get() + offset;
}
}
- // We currently do not pass the process_index to this function so we assume
- // that the privatized region has been resolved in the callers:
- case simgrid::mc::StorageType::Privatized:
+ default:
+ // includes StorageType::NoData and StorageType::Privatized (we currently do not pass the process_index to this
+ // function so we assume that the privatized region has been resolved in the callers)
xbt_die("Storage type not supported");
}
}