7 #ifndef RETDEC_LLVMIR2HLL_ANALYSIS_GOTO_TARGET_ANALYSIS_H
8 #define RETDEC_LLVMIR2HLL_ANALYSIS_GOTO_TARGET_ANALYSIS_H
Analysis of goto targets.
Definition: goto_target_analysis.h:32
void putIntoGotoTargetsIfGotoTarget(ShPtr< Statement > stmt)
Checks whether the given statement is a goto target, and if so, puts it into gotoTargets.
Definition: goto_target_analysis.cpp:59
StmtSet gotoTargets
All found goto targets.
Definition: goto_target_analysis.h:52
static bool hasGotoTargets(ShPtr< Statement > stmt)
Returns true if there are goto targets reachable from the given statement, false otherwise.
Definition: goto_target_analysis.cpp:47
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
virtual void visitStmt(ShPtr< Statement > stmt, bool visitSuccessors=true, bool visitNestedStmts=true) override
Visits the given statement, and possibly its successors or nested statements.
Definition: goto_target_analysis.cpp:70
static StmtSet getGotoTargets(ShPtr< Statement > stmt)
Definition: goto_target_analysis.cpp:30
GotoTargetAnalysis()
Constructs a new analysis.
Definition: goto_target_analysis.cpp:18
A visitor that visits everything in an ordered way.
Definition: ordered_all_visitor.h:44
bool visitSuccessors
Should statements' successor be accessed?
Definition: ordered_all_visitor.h:144
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
bool visitNestedStmts
Should nested statements be accessed?
Definition: ordered_all_visitor.h:147
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
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
std::set< ShPtr< Statement > > StmtSet
Set of statements.
Definition: types.h:69
Definition: archive_wrapper.h:19
A mixin to make classes non-copyable.
A visitor that visits everything in an ordered way.
Declarations, aliases, macros, etc. for the use of smart pointers.
Aliases for several useful types.