#ifndef SIMGRID_MC_VARIABLE_HPP
#define SIMGRID_MC_VARIABLE_HPP
-#include <string>
+#include <cstddef>
-#include <xbt/base.h>
+#include <string>
-#include "src/mc/mc_forward.h"
+#include "src/mc/mc_forward.hpp"
#include "src/mc/LocationList.hpp"
namespace simgrid {
/** A variable (global or local) in the model-checked program */
class Variable {
public:
- Variable() {}
- unsigned dwarf_offset = 0; /* Global offset of the field. */
- int global = 0;
+ Variable() = default;
+ std::uint32_t id = 0;
+ bool global = false;
std::string name;
unsigned type_id = 0;
simgrid::mc::Type* type = nullptr;
- // Use either of:
- simgrid::dwarf::LocationList location_list;
+
+ /** Address of the variable (if it is fixed) */
void* address = nullptr;
- size_t start_scope = 0;
+
+ /** Description of the location of the variable (if it's not fixed) */
+ simgrid::dwarf::LocationList location_list;
+
+ /** Offset of validity of the variable (DW_AT_start_scope)
+ *
+ * This is an offset from the variable scope beginning. This variable
+ * is only valid starting from this offset.
+ */
+ std::size_t start_scope = 0;
+
simgrid::mc::ObjectInformation* object_info = nullptr;
};