Merge pull request #1116 from rdmarsh2/rdmarsh/cpp/ir-guards-perf

C++: fix cartesian product in IRGuards.qll
This commit is contained in:
Jonas Jensen
2019-03-15 11:35:15 +01:00
committed by GitHub

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)
}