angr.ailment.statement

AIL Statement classes.

Mirror of angr.ailment.expression for the Statement side.

class angr.ailment.statement.CAS

Bases: object

Marker for Statement instances whose variant is CAS.

static __new__(cls, idx, addr, data_lo, data_hi, expd_lo, expd_hi, old_lo, old_hi, endness, **tags)
Return type:

Statement

class angr.ailment.statement.Assignment

Bases: object

Marker for Statement instances whose variant is Assignment.

static __new__(cls, idx, dst, src, **tags)
Return type:

Statement

class angr.ailment.statement.ConditionalJump

Bases: object

Marker for Statement instances whose variant is ConditionalJump.

static __new__(cls, idx, condition, true_target, false_target, *, true_target_idx=None, false_target_idx=None, **tags)
Return type:

Statement

class angr.ailment.statement.DirtyStatement

Bases: object

Marker for Statement instances whose variant is DirtyStatement.

static __new__(cls, idx, dirty, **tags)
Return type:

Statement

class angr.ailment.statement.Jump

Bases: object

Marker for Statement instances whose variant is Jump.

static __new__(cls, idx, target, target_idx=None, **tags)
Return type:

Statement

class angr.ailment.statement.Label

Bases: object

Marker for Statement instances whose variant is Label.

static __new__(cls, idx, name, **tags)
Return type:

Statement

class angr.ailment.statement.NoOp

Bases: object

Marker for Statement instances whose variant is NoOp.

Placeholder for a removed statement; defines and uses no atoms. Primarily used by the AIL simplifier’s dead-assignment removal so the indices of surrounding statements stay stable until the block is compacted.

static __new__(cls, idx, **tags)
Return type:

Statement

class angr.ailment.statement.Return

Bases: object

Marker for Statement instances whose variant is Return.

static __new__(cls, idx, ret_exprs, **tags)
Return type:

Statement

class angr.ailment.statement.SideEffectStatement

Bases: object

Marker for Statement instances whose variant is SideEffectStatement.

static __new__(cls, idx, expr, ret_expr=None, fp_ret_expr=None, **tags)
Return type:

Statement

class angr.ailment.statement.Statement

Bases: object

Marker for isinstance(x, Statement) checks.

__init__(idx=None, *_extra, **tags)
static from_bytes(data)

Deserialize a Statement from bytes.

Parameters:

data (bytes)

class angr.ailment.statement.Store

Bases: object

Marker for Statement instances whose variant is Store.

static __new__(cls, idx, addr, data, size, endness, guard=None, **tags)
Return type:

Statement

class angr.ailment.statement.TaggedObject

Bases: object

Marker class for backward-compatible isinstance(x, TaggedObject) checks.

The real hierarchy has no shared base anymore; this class only exists so legacy isinstance checks keep returning the same result.

Some legacy code does __hash__ = ailment.statement.TaggedObject.__hash__ to opt in to the cached-hash machinery. We expose a pure-Python __hash__ here so that idiom keeps working.

class angr.ailment.statement.WeakAssignment

Bases: object

Marker for Statement instances whose variant is WeakAssignment.

static __new__(cls, idx, dst, src, **tags)
Return type:

Statement