angr.analyses.decompiler.optimization_passes.switch_default_case_duplicator

class angr.analyses.decompiler.optimization_passes.switch_default_case_duplicator.SwitchDefaultCaseDuplicator

Bases: OptimizationPass

For each switch-case construct (identified by jump tables), duplicate the default-case node when we detect situations where the default-case node is seemingly reused by edges outside the switch-case construct. This code reuse is usually caused by compiler code deduplication.

Ideally this pass should be implemented as an ISC optimization reversion.

ARCHES = None
PLATFORMS = None
STAGE: OptimizationPassStage = 0
NAME = 'Duplicate default-case nodes to undo default-case node reuse caused by compiler code deduplication'
DESCRIPTION = 'For each switch-case construct (identified by jump tables), duplicate the default-case node when we detect\n    situations where the default-case node is seemingly reused by edges outside the switch-case construct. This code\n    reuse is usually caused by compiler code deduplication.\n\n    Ideally this pass should be implemented as an ISC optimization reversion.'
__init__(*args, **kwargs)