angr.analyses.decompiler.peephole_optimizations.bitwise_or_to_logical_or

class angr.analyses.decompiler.peephole_optimizations.bitwise_or_to_logical_or.BitwiseOrToLogicalOr

Bases: PeepholeOptimizationExprBase

Perform the following two simplifications:

  1. (a | b) == 0 ==> (a == 0) && (b == 0)

  2. (a | b) != 0 ==> (a != 0) || (b != 0)

NAME = '(a | b) == 0 => (a == 0) && (b == 0) ; (a | b) != 0 => (a != 0) || (b != 0)'
expr_classes = (<class 'angr.ailment.expression.BinaryOp'>,)
optimize(expr, **kwargs)
Parameters:

expr (BinaryOp)