ROSE  0.10.12.0
BaseSemanticsMerger.h
1 #ifndef ROSE_BinaryAnalysis_InstructionSemantics2_BaseSemantics_Merger_H
2 #define ROSE_BinaryAnalysis_InstructionSemantics2_BaseSemantics_Merger_H
3 #include <rosePublicConfig.h>
4 #ifdef ROSE_BUILD_BINARY_ANALYSIS_SUPPORT
5 
6 #include <BaseSemanticsTypes.h>
7 
8 namespace Rose {
9 namespace BinaryAnalysis {
10 namespace InstructionSemantics2 {
11 namespace BaseSemantics {
12 
14 // Merging states
16 
34  bool memoryAddressesMayAlias_;
35  bool memoryMergeDebugging_;
36 
37 protected:
38  Merger();
39 
40 public:
42  typedef MergerPtr Ptr;
43 
44  ~Merger();
45 
47  static Ptr instance();
48 
55  bool memoryAddressesMayAlias() const { return memoryAddressesMayAlias_; }
56  void memoryAddressesMayAlias(bool b) { memoryAddressesMayAlias_ = b; }
66  bool memoryMergeDebugging() const { return memoryMergeDebugging_; }
67  void memoryMergeDebugging(bool b) { memoryMergeDebugging_ = b; }
69 };
70 
71 } // namespace
72 } // namespace
73 } // namespace
74 } // namespace
75 
76 #endif
77 #endif
Main namespace for the ROSE library.
bool memoryMergeDebugging() const
Turn on output for memory merge debugging.
Reference-counting intrusive smart pointer.
Definition: SharedPointer.h:68
bool memoryAddressesMayAlias() const
Whether memory addresses can alias one another.
void memoryAddressesMayAlias(bool b)
Whether memory addresses can alias one another.
Base class for reference counted objects.
Definition: SharedObject.h:64
void memoryMergeDebugging(bool b)
Turn on output for memory merge debugging.