variable->address = (void *) (base + offset);
} else
variable->location_list = {
- simgrid::dwarf::DwarfExpression(expr, expr + len) };
+ simgrid::dwarf::LocationListEntry(simgrid::dwarf::DwarfExpression(expr, expr + len))};
break;
}
dwarf_attr(die, DW_AT_start_scope, &attr);
int form = dwarf_whatform(&attr);
simgrid::dwarf::FormClass form_class = simgrid::dwarf::classify_form(form);
- switch (form_class) {
- case simgrid::dwarf::FormClass::Constant: {
- Dwarf_Word value;
- variable->start_scope =
- dwarf_formudata(&attr, &value) == 0 ? (size_t) value : 0;
- break;
- }
-
- 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);
+ if (form_class == simgrid::dwarf::FormClass::Constant) {
+ Dwarf_Word value;
+ variable->start_scope = dwarf_formudata(&attr, &value) == 0 ? (size_t)value : 0;
+ } else {
+ // TODO: FormClass::RangeListPtr
+ 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);
}
}
// The current code needs a variable name,
// generate a fake one:
- if (variable->name.empty())
- variable->name =
- "@anonymous#" + std::to_string(mc_anonymous_variable_index++);
-
+ if (variable->name.empty()) {
+ variable->name = "@anonymous#" + std::to_string(mc_anonymous_variable_index);
+ mc_anonymous_variable_index++;
+ }
return variable;
}
if (not variable)
return;
// Those arrays are sorted later:
- else if (variable->global)
+ if (variable->global)
info->global_variables.push_back(std::move(*variable));
else if (frame != nullptr)
frame->variables.push_back(std::move(*variable));