Public Types | Static Public Member Functions | List of all members
Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::Merger Class Reference


Controls state merge operations.

This is the base class for objects that control the details of merge operations. A merge of two semantic values or semantic states happens when control flow joins together in data-flow analysis, and perhaps other operations. An optional Merger object is passed as an argument into the merge functions and contains settings and other details that might be necessary during the merge operation.

The base classes for register state and memory state allow an optional Merger object to be stored in the state. Whenever a state is copied, its merger object pointer is also copied (shallow copy of merger). The merger object is passed as an argument to each call of SValue::createMerged or SValue::createOptionalMerge. The user-defined versions of these functions can access the merger object to decide how to merge. For example, the symbolic domain defines a merger that controls whether merging two different semantic values results in bottom or a set containing both values.

Merger objects are allocated on the heap and have shared ownership like most other instruction semantics objects. Therefore they have no public C++ constructors but instead use factory methods named "instance". Users should not explicitly delete these objects – they will be deleted automatically.

Definition at line 494 of file BaseSemantics2.h.

#include <BaseSemantics2.h>

Inheritance diagram for Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::Merger:
Inheritance graph
Collaboration diagram for Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::Merger:
Collaboration graph

Public Types

typedef MergerPtr Ptr
 Shared ownership pointer for Merger. More...

Static Public Member Functions

static Ptr instance ()
 Allocating constructor. More...

Additional Inherited Members

- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor. More...
 SharedObject (const SharedObject &)
 Copy constructor. More...
virtual ~SharedObject ()
 Virtual destructor. More...
SharedObjectoperator= (const SharedObject &)
 Assignment. More...

Member Typedef Documentation

Shared ownership pointer for Merger.

See Shared ownership.

Definition at line 500 of file BaseSemantics2.h.

Member Function Documentation

static Ptr Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::Merger::instance ( )

Allocating constructor.

Definition at line 503 of file BaseSemantics2.h.

The documentation for this class was generated from the following file: