angr.ailment.tagged_object

Python-side marker for the legacy isinstance(x, TaggedObject) checks.

We can get rid of this base class once IncompleteSwitchCaseHeadStatement is migrated to Rust.

class angr.ailment.tagged_object.TagDict

Bases: TypedDict

Schema for the .tags mapping on AIL data classes.

Only primitive-valued tags survive the Rust port. reg_vvars was promoted to a dedicated field on VirtualVariable. Variable information (variable, variable_offset, reference_*) now lives in a side VariableMap (see angr.analyses.decompiler.variable_map).

always_propagate: bool
block_idx: int
deref_src_addr: int
extra_def: bool
extra_defs: list[int]
ins_addr: int
is_prototype_guessed: bool
keep_in_slice: bool
orig_ins_addr: int
reg_name: str
uninitialized: bool
vex_block_addr: int
vex_stmt_idx: int
write_size: int
class angr.ailment.tagged_object.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.

idx: int
tags: Any