angr.analyses.typehoon.typeconsts

All type constants used in type inference. They can be mapped, translated, or rewritten to C-style types.

angr.analyses.typehoon.typeconsts.memoize(f)
class angr.analyses.typehoon.typeconsts.TypeConstant

Bases: object

SIZE = None
TYPE_HASH: int = 1984226046
__init__(name=None)
Parameters:

name (str | None)

pp_str(mapping)
Return type:

str

property size: int
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
class angr.analyses.typehoon.typeconsts.TopType

Bases: TypeConstant

SIZE = 1
TYPE_HASH: int = 1194223761
class angr.analyses.typehoon.typeconsts.BottomType

Bases: TypeConstant

SIZE = 1
TYPE_HASH: int = 1602925492
class angr.analyses.typehoon.typeconsts.Int

Bases: TypeConstant

TYPE_HASH: int = 740072529
class angr.analyses.typehoon.typeconsts.Int1

Bases: Int

SIZE = 1
TYPE_HASH: int = 2677838409
class angr.analyses.typehoon.typeconsts.Int8

Bases: Int

SIZE = 1
TYPE_HASH: int = 3862964973
class angr.analyses.typehoon.typeconsts.Int16

Bases: Int

SIZE = 2
TYPE_HASH: int = 304553906
class angr.analyses.typehoon.typeconsts.Int32

Bases: Int

SIZE = 4
TYPE_HASH: int = 662485289
class angr.analyses.typehoon.typeconsts.Fd

Bases: Int

SIZE = 4
TYPE_HASH: int = 2904907581
class angr.analyses.typehoon.typeconsts.Int64

Bases: Int

SIZE = 8
TYPE_HASH: int = 3009996889
class angr.analyses.typehoon.typeconsts.SInt8

Bases: Int8

TYPE_HASH: int = 2123741175
class angr.analyses.typehoon.typeconsts.UInt8

Bases: Int8

TYPE_HASH: int = 4057285207
class angr.analyses.typehoon.typeconsts.SInt16

Bases: Int16

TYPE_HASH: int = 4024251221
class angr.analyses.typehoon.typeconsts.UInt16

Bases: Int16

TYPE_HASH: int = 965005384
class angr.analyses.typehoon.typeconsts.SInt32

Bases: Int32

TYPE_HASH: int = 3666253262
class angr.analyses.typehoon.typeconsts.UInt32

Bases: Int32

TYPE_HASH: int = 215971539
class angr.analyses.typehoon.typeconsts.SInt64

Bases: Int64

TYPE_HASH: int = 1318241470
class angr.analyses.typehoon.typeconsts.UInt64

Bases: Int64

TYPE_HASH: int = 2563450787
class angr.analyses.typehoon.typeconsts.Int128

Bases: Int

SIZE = 16
TYPE_HASH: int = 3138480040
class angr.analyses.typehoon.typeconsts.Int256

Bases: Int

SIZE = 32
TYPE_HASH: int = 296641073
class angr.analyses.typehoon.typeconsts.Int512

Bases: Int

SIZE = 32
TYPE_HASH: int = 2011198889
class angr.analyses.typehoon.typeconsts.IntVar

Bases: Int

__init__(size, name=None)
Parameters:

name (str | None)

property size: int
TYPE_HASH: int = 4044758036
class angr.analyses.typehoon.typeconsts.Float

Bases: TypeConstant

TYPE_HASH: int = 140800401
class angr.analyses.typehoon.typeconsts.Float32

Bases: Float

SIZE = 4
TYPE_HASH: int = 842912986
class angr.analyses.typehoon.typeconsts.Float64

Bases: Float

SIZE = 8
TYPE_HASH: int = 2787739050
class angr.analyses.typehoon.typeconsts.Float80

Bases: Float

SIZE = 10
TYPE_HASH: int = 1070033981
class angr.analyses.typehoon.typeconsts.Float128

Bases: Float

SIZE = 16
TYPE_HASH: int = 2679145827
class angr.analyses.typehoon.typeconsts.Pointer

Bases: TypeConstant

__init__(basetype, name=None)
Parameters:
basetype: TypeConstant | None
new(basetype, name=None)
Parameters:

name (str | None)

replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
TYPE_HASH: int = 4256780596
class angr.analyses.typehoon.typeconsts.Pointer32

Bases: Pointer, Int32

32-bit pointers.

__init__(basetype=None, name=None)
Parameters:

name (str | None)

TYPE_HASH: int = 3659745635
class angr.analyses.typehoon.typeconsts.Pointer64

Bases: Pointer, Int64

64-bit pointers.

__init__(basetype=None, name=None)
Parameters:

name (str | None)

TYPE_HASH: int = 1312233491
class angr.analyses.typehoon.typeconsts.Array

Bases: TypeConstant

__init__(element=None, count=None, name=None)
Parameters:

name (str | None)

element: TypeConstant | None
count: int | None
property size: int
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
TYPE_HASH: int = 1624097203
class angr.analyses.typehoon.typeconsts.Struct

Bases: TypeConstant

__init__(fields=None, name=None, field_names=None, is_cppclass=False, idx=-1, size=None)
Parameters:
property fields: dict[int, TypeConstant]
property size: int
TYPE_HASH: int = 3175010840
class angr.analyses.typehoon.typeconsts.EnumVariant

Bases: object

__init__(name, fields, discriminant, discriminant_size, size)
fields: list[tuple[TypeConstant, str | None]]
class angr.analyses.typehoon.typeconsts.RustEnum

Bases: TypeConstant

__init__(name=None, variants=None)
get_variant(name)
Return type:

EnumVariant | None

property size: int
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
TYPE_HASH: int = 3260887885
class angr.analyses.typehoon.typeconsts.Enum

Bases: TypeConstant

Enum type constant for type inference.

Variables:
  • members (dict[str, int]) – Mapping of enum member names to their integer values

  • base_type – The underlying type constant (defaults to Int32)

  • idx – Unique identifier for this enum

__init__(members=None, base_type=None, name=None, idx=-1)
Parameters:
members: dict[str, int]
property size: int

Return the size of the enum in bytes.

replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
TYPE_HASH: int = 2928410991
class angr.analyses.typehoon.typeconsts.Function

Bases: TypeConstant

__init__(params, outputs, name=None)
Parameters:
replace(mapping, memo=None)
Return type:

TypeConstant

Parameters:
TYPE_HASH: int = 869823595
class angr.analyses.typehoon.typeconsts.TypeVariableReference

Bases: TypeConstant

__init__(typevar, name=None)
Parameters:

name (str | None)

TYPE_HASH: int = 3866462522
angr.analyses.typehoon.typeconsts.int_type(bits)
Return type:

Int

Parameters:

bits (int)

angr.analyses.typehoon.typeconsts.signed_int_type(bits)
Return type:

Int

Parameters:

bits (int)

angr.analyses.typehoon.typeconsts.unsigned_int_type(bits)
Return type:

Int

Parameters:

bits (int)

angr.analyses.typehoon.typeconsts.float_type(bits)
Return type:

Float | None

Parameters:

bits (int)