CodeQL library for C#
codeql/csharp-all 0.5.1 (changelog, source)

Member predicate BasicBlock::strictlyPostDominates

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

That is, all paths reaching an exit point basic block from basic block bb must go through this basic block (which must be different from bb).


int M(string s) {
  try {
    return s.Length;
  finally {

The basic block on line 6 strictly 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).

predicate strictlyPostDominates(BasicBlock bb)