 over a <em>single</em> program path.
      However, many useful properties
      (dead code, check-after-use, etc.) require
      reasoning over <em>all</em> possible in a program.
      Such reasoning requires a
      <a href="https://en.wikipedia.org/wiki/Data-flow_analysis">dataflow analysis</a> framework.
      Clang already implements
      a few dataflow analyses (most notably, liveness),
      but they implemented in an ad-hoc fashion.
      A proper framework would enable us writing many more usefu