angr.analyses.decompiler.optimization_passes.ret_deduplicator

class angr.analyses.decompiler.optimization_passes.ret_deduplicator.ReturnDeduplicator

Bases: OptimizationPass

Transforms: - if (cond) { … return x; } return x;

into: - if (cond) { … } return x;

TODO: its possible that this can be expanded to all rets that are equivalent. Testing needed.

ARCHES = ['X86', 'AMD64', 'ARMEL', 'ARMHF', 'ARMCortexM', 'MIPS32', 'MIPS64']
PLATFORMS = ['windows', 'linux', 'cgc']
STAGE: OptimizationPassStage = 10
NAME = 'Deduplicates return statements that may have been duplicated'
DESCRIPTION = 'Transforms:\n    - if (cond) { ... return x; } return x;\n\n    into:\n    - if (cond) { ... } return x;\n\n    TODO: its possible that this can be expanded to all rets that are equivalent. Testing needed.'
STRUCTURING: list[str] | None = ['sailr', 'dream']
__init__(*args, **kwargs)