C++: fix cartesian product in IRGuards.qll

This commit is contained in:
Robert Marsh
2019-03-14 13:37:35 -07:00
parent 6453b05a41
commit dfb7076fae

View File

@@ -381,9 +381,7 @@ cached class IRGuardCondition extends Instruction {
}
private ConditionalBranchInstruction get_branch_for_condition(Instruction guard) {
exists(ConditionalBranchInstruction branch|
branch.getCondition() = guard
)
result.getCondition() = guard
or
exists(LogicalNotInstruction cond | result = get_branch_for_condition(cond) and cond.getUnary() = guard)
}