зеркало из https://github.com/github/codeql.git
56bb9dcde0
The existing unreachable IR removal code only retargeted an infeasible edge to an `Unreached` instruction if the successor of the edge was an unreachable block. This is too conservative, because it doesn't remove an infeasible edge that targets a block that is still reachable via other paths. The trivial example of this is `do { } while (false);`, where the back edge is infeasible, but the body block is still reachable from the loop entry. This change retargets all infeasible edges to `Unreached` instructions, regardless of the reachability of the successor block. |
||
---|---|---|
.. | ||
identical-files.json |