ROSE 0.11.145.281
IndirectControlFlow.h
1#ifndef ROSE_BinaryAnalysis_Partitioner2_IndirectControlFlow_H
2#define ROSE_BinaryAnalysis_Partitioner2_IndirectControlFlow_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
6
7#include <Sawyer/CommandLine.h>
8#include <Sawyer/Message.h>
9
10namespace Rose {
11namespace BinaryAnalysis {
12namespace Partitioner2 {
13
15namespace IndirectControlFlow {
16
18void initDiagnostics();
19
20// `struct Settings` is located in <BasicTypes.h>
21
23struct State {
24 std::set<uint64_t> hashedGraphs; // hashes for dataflow graphs that have been analyzed
25};
26
33
46bool analyzeAllBlocks(const Settings&, const PartitionerPtr&);
47
49bool reanalyzeSomeBlocks(const Settings&, const PartitionerPtr&);
50
51} // namespace
52} // namespace
53} // namespace
54} // namespace
55
56#endif
57#endif
A collection of related switch declarations.
Collection of streams.
Definition Message.h:1606
Reference-counting intrusive smart pointer.
bool reanalyzeSomeBlocks(const Settings &, const PartitionerPtr &)
Reanalyze all basic blocks that have indirect control flow.
bool analyzeAllBlocks(const Settings &, const PartitionerPtr &)
Attempt to resolve indirect control flow using a variety of strategies.
Sawyer::CommandLine::SwitchGroup commandLineSwitches(Settings &)
Define command-line switches.
void initDiagnostics()
Initialize diagnostics.
ROSE_DLL_API Sawyer::Message::Facility mlog
Diagnostic facility for the ROSE library as a whole.
Definition sageBuilder.C:58
The ROSE library.