ROSE  0.11.51.0
Merger.h
1 #ifndef ROSE_BinaryAnalysis_InstructionSemantics2_BaseSemantics_Merger_H
2 #define ROSE_BinaryAnalysis_InstructionSemantics2_BaseSemantics_Merger_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
5 
6 #include <Rose/BinaryAnalysis/InstructionSemantics2/BaseSemantics/Types.h>
7 
8 namespace Rose {
9 namespace BinaryAnalysis {
10 namespace InstructionSemantics2 {
11 namespace BaseSemantics {
12 
14 // Merging states
16 
34 public:
36  typedef MergerPtr Ptr;
37 
38 private:
39  bool memoryAddressesMayAlias_;
40  bool memoryMergeDebugging_;
41 
42 protected:
43  Merger();
44 
45 public:
46  ~Merger();
47 
49  static Ptr instance();
50 
57  bool memoryAddressesMayAlias() const { return memoryAddressesMayAlias_; }
58  void memoryAddressesMayAlias(bool b) { memoryAddressesMayAlias_ = b; }
68  bool memoryMergeDebugging() const { return memoryMergeDebugging_; }
69  void memoryMergeDebugging(bool b) { memoryMergeDebugging_ = b; }
71 };
72 
73 } // namespace
74 } // namespace
75 } // namespace
76 } // namespace
77 
78 #endif
79 #endif
MergerPtr Ptr
Shared ownership pointer for Merger.
Definition: Merger.h:36
Main namespace for the ROSE library.
bool memoryMergeDebugging() const
Turn on output for memory merge debugging.
Definition: Merger.h:68
Base classes for instruction semantics.
Definition: Dispatcher.h:18
bool memoryAddressesMayAlias() const
Whether memory addresses can alias one another.
Definition: Merger.h:57
void memoryAddressesMayAlias(bool b)
Whether memory addresses can alias one another.
Definition: Merger.h:58
Base class for reference counted objects.
Definition: SharedObject.h:64
void memoryMergeDebugging(bool b)
Turn on output for memory merge debugging.
Definition: Merger.h:69