CodeQL library for C/C++
codeql/cpp-all 0.13.0 (changelog, source)
Search

Predicate isInCycle

Holds if instr is part of a cycle in the operand graph that doesn’t go through a phi instruction and therefore should be impossible.

If such cycles are present, either due to a programming error in the IR generation or due to a malformed database, it can cause infinite loops in analyses that assume a cycle-free graph of non-phi operands. Therefore it’s better to remove these operands than to leave cycles in the operand graph.

Import path

import semmle.code.cpp.ir.implementation.raw.internal.IRConstruction
predicate isInCycle(Instruction instr)