angr.go.optimization_passes.header_word_types¶
- class angr.go.optimization_passes.header_word_types.GoHeaderWordTypes¶
Bases:
OptimizationPassKeep the length and capacity words of string and slice headers integers. Type inference happily unifies a
lenword with the pointer word it travels next to and renders(*int8)(n)andunsafe.Pointerlocals for what is anint. A variable is proven an integer when it is thelen/capleaf of a fused header (a call argument or a return value), when it is passed where a typed callee takes an integer, or when it is compared in order against thelen/capword of a header; those variables are pinned as ground truth for type inference.- ARCHES = None¶
- PLATFORMS = None¶
- STAGE: OptimizationPassStage = 7¶
- NAME = 'Pin Go header length words to int'¶
- __init__(func, manager, **kwargs)¶