CodeQL library for C#
codeql/csharp-all 3.1.1-dev (changelog, source)
Search

Member predicate BasicBlock::postDominates

Holds if this basic block post-dominates basic block bb.

That is, all paths reaching a normal exit point basic block from basic block bb must go through this basic block.

Example:

int M(string s) {
  try {
    return s.Length;
  }
  finally {
    Console.WriteLine("M");
  }
}

The basic block on line 6 post-dominates the basic block on line 3 (all paths to the exit point of M from return s.Length; must go through the WriteLine call).

This predicate is reflexive, so for example Console.WriteLine("M"); post-dominates itself.

predicate postDominates(BasicBlock bb)