8 #ifndef RETDEC_LLVMIR2HLL_GRAPHS_CFG_CFG_TRAVERSALS_MODIFIED_BEFORE_READ_CFG_TRAVERSAL_H
9 #define RETDEC_LLVMIR2HLL_GRAPHS_CFG_CFG_TRAVERSALS_MODIFIED_BEFORE_READ_CFG_TRAVERSAL_H
16 class CallInfoObtainer;
40 virtual bool combineRetVals(
bool origRetVal,
bool newRetVal)
const override;
A base class of all CFG traversals.
A base class of all CFG traversals.
Definition: cfg_traversal.h:28
ShPtr< CFG > cfg
CFG that is being traversed.
Definition: cfg_traversal.h:74
A CFG traversal that checks whether a variable is modified prior to every read access to it starting ...
Definition: modified_before_read_cfg_traversal.h:28
ShPtr< ValueAnalysis > va
Analysis of values.
Definition: modified_before_read_cfg_traversal.h:47
ShPtr< Variable > var
Variable whose modification is looked for.
Definition: modified_before_read_cfg_traversal.h:44
ShPtr< CallInfoObtainer > cio
Obtainer of information about function calls.
Definition: modified_before_read_cfg_traversal.h:50
virtual bool visitStmt(ShPtr< Statement > stmt) override
Visits the given statement stmt.
Definition: modified_before_read_cfg_traversal.cpp:64
virtual bool combineRetVals(bool origRetVal, bool newRetVal) const override
Computes a new return value from the original return value (origRetVal) and the new return value (new...
Definition: modified_before_read_cfg_traversal.cpp:117
virtual bool getEndRetVal() const override
Returns the value that should be returned when an end of the traversal is reached.
Definition: modified_before_read_cfg_traversal.cpp:112
static bool isModifiedBeforeEveryRead(ShPtr< Variable > var, ShPtr< Statement > startStmt, ShPtr< CFG > cfg, ShPtr< ValueAnalysis > va, ShPtr< CallInfoObtainer > cio)
Returns true if the given variable var is modified prior to every read access to it in cfg,...
Definition: modified_before_read_cfg_traversal.cpp:48
bool wasModifiedBeforeEveryRead
Was the variable modified before every read?
Definition: modified_before_read_cfg_traversal.h:53
ModifiedBeforeReadCFGTraversal(ShPtr< Variable > var, ShPtr< CFG > cfg, ShPtr< ValueAnalysis > va, ShPtr< CallInfoObtainer > cio)
Constructs a new traverser.
Definition: modified_before_read_cfg_traversal.cpp:22
A library providing API for working with back-end IR.
std::shared_ptr< T > ShPtr
An alias for a shared pointer.
Definition: smart_ptr.h:18
Definition: archive_wrapper.h:19