A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Build ID are somewhat gnu/linux specific.
[simgrid.git]
/
src
/
mc
/
Type.hpp
diff --git
a/src/mc/Type.hpp
b/src/mc/Type.hpp
index
f94d944
..
5551e23
100644
(file)
--- a/
src/mc/Type.hpp
+++ b/
src/mc/Type.hpp
@@
-7,12
+7,17
@@
#ifndef SIMGRID_MC_TYPE_HPP
#define SIMGRID_MC_TYPE_HPP
#ifndef SIMGRID_MC_TYPE_HPP
#define SIMGRID_MC_TYPE_HPP
+#include <cstddef>
+
#include <vector>
#include <string>
#include <xbt/base.h>
#include <vector>
#include <string>
#include <xbt/base.h>
+#include <xbt/asserts.h>
+
+#include <dwarf.h>
-#include "src/mc/mc_forward.h"
+#include "src/mc/mc_forward.h
pp
"
#include "src/mc/LocationList.hpp"
namespace simgrid {
#include "src/mc/LocationList.hpp"
namespace simgrid {
@@
-24,10
+29,14
@@
namespace mc {
*/
class Member {
public:
*/
class Member {
public:
+ typedef int flags_type;
+ static constexpr flags_type INHERITANCE_FLAG = 1;
+ static constexpr flags_type VIRTUAL_POINTER_FLAG = 2;
+
Member() {}
/** Whether this member represent some inherited part of the object */
Member() {}
/** Whether this member represent some inherited part of the object */
-
bool inheritance = false
;
+
flags_type flags = 0
;
/** Name of the member (if any) */
std::string name;
/** Name of the member (if any) */
std::string name;
@@
-40,6
+49,15
@@
public:
unsigned type_id = 0;
simgrid::mc::Type* type = nullptr;
unsigned type_id = 0;
simgrid::mc::Type* type = nullptr;
+ bool isInheritance() const
+ {
+ return this->flags & INHERITANCE_FLAG;
+ }
+ bool isVirtualPointer() const
+ {
+ return this->flags & VIRTUAL_POINTER_FLAG;
+ }
+
/** Whether the member is at a fixed offset from the base address */
bool has_offset_location() const
{
/** Whether the member is at a fixed offset from the base address */
bool has_offset_location() const
{