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
cosmetics
[simgrid.git]
/
src
/
mc
/
Type.hpp
diff --git
a/src/mc/Type.hpp
b/src/mc/Type.hpp
index
5839a3b
..
3140c43
100644
(file)
--- a/
src/mc/Type.hpp
+++ b/
src/mc/Type.hpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2007-201
5
. The SimGrid Team.
+/* Copyright (c) 2007-201
8
. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
@@
-12,12
+12,12
@@
#include <vector>
#include <string>
#include <vector>
#include <string>
-#include
<xbt/base.h>
-#include
<xbt/asserts.h>
+#include
"xbt/asserts.h"
+#include
"xbt/base.h"
#include <dwarf.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 {
@@
-29,10
+29,14
@@
namespace mc {
*/
class Member {
public:
*/
class Member {
public:
- Member() {}
+ typedef int flags_type;
+ static constexpr flags_type INHERITANCE_FLAG = 1;
+ static constexpr flags_type VIRTUAL_POINTER_FLAG = 2;
+
+ Member() = default;
/** Whether this member represent some inherited part of the object */
/** 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;
@@
-45,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
{
@@
-83,7
+96,7
@@
public:
/** A type in the model-checked program */
class Type {
public:
/** A type in the model-checked program */
class Type {
public:
- Type()
{}
+ Type()
= default;
/** The DWARF TAG of the type (e.g. DW_TAG_array_type) */
int type = 0;
/** The DWARF TAG of the type (e.g. DW_TAG_array_type) */
int type = 0;