retdec
include
retdec
common
basic_block.h
Go to the documentation of this file.
1
7
#ifndef RETDEC_COMMON_BASIC_BLOCK_H
8
#define RETDEC_COMMON_BASIC_BLOCK_H
9
10
#include <set>
11
#include <tuple>
12
13
#include "
retdec/common/address.h
"
14
#include "
retdec/common/range.h
"
15
16
struct
cs_insn;
17
18
namespace
retdec
{
19
namespace
common {
20
21
class
BasicBlock
:
public
AddressRange
22
{
23
public
:
24
using
AddressRange::AddressRange
;
25
26
public
:
28
std::set<Address>
preds
;
30
std::set<Address>
succs
;
31
33
struct
CallEntry
34
{
35
Address
srcAddr
;
36
Address
targetAddr
;
37
38
bool
operator<
(
const
CallEntry
& o)
const
39
{
40
return
std::tie(
srcAddr
,
targetAddr
)
41
< std::tie(o.
srcAddr
, o.
targetAddr
);
42
}
43
};
44
std::set<CallEntry>
calls
;
45
51
std::vector<cs_insn*>
instructions
;
52
};
53
54
}
// namespace common
55
}
// namespace retdec
56
57
#endif
retdec::common::Address
Definition:
address.h:21
retdec::common::BasicBlock
Definition:
basic_block.h:22
retdec::common::BasicBlock::preds
std::set< Address > preds
Start addresses of predecessor basic blocks.
Definition:
basic_block.h:28
retdec::common::BasicBlock::calls
std::set< CallEntry > calls
Definition:
basic_block.h:44
retdec::common::BasicBlock::succs
std::set< Address > succs
Start addresses of successor basic blocks.
Definition:
basic_block.h:30
retdec::common::BasicBlock::instructions
std::vector< cs_insn * > instructions
Definition:
basic_block.h:51
retdec::common::Range
Definition:
range.h:45
address.h
Address, address pair and other derived class representation.
range.h
Declaration of templated Range class.
retdec::common::AddressRange
Range< Address > AddressRange
Definition:
address.h:53
retdec
Definition:
archive_wrapper.h:19
retdec::common::BasicBlock::CallEntry
All the calls in this basic block.
Definition:
basic_block.h:34
retdec::common::BasicBlock::CallEntry::srcAddr
Address srcAddr
Definition:
basic_block.h:35
retdec::common::BasicBlock::CallEntry::operator<
bool operator<(const CallEntry &o) const
Definition:
basic_block.h:38
retdec::common::BasicBlock::CallEntry::targetAddr
Address targetAddr
Definition:
basic_block.h:36
Generated on Tue Aug 8 2023 10:45:48 for retdec by
1.9.1