Files
codeql/cpp/ql/test/library-tests
Dave Bartolomeo 56bb9dcde0 C++: Remove infeasible edges to reachable blocks
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.
2018-12-14 12:13:22 -08:00
..
2018-10-18 12:36:42 +01:00
2018-10-18 12:36:42 +01:00
2018-10-18 12:36:42 +01:00
2018-09-23 16:23:52 -07:00
2018-10-18 12:36:42 +01:00
2018-10-25 21:18:37 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-11-28 17:11:17 +00:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-09-23 16:23:52 -07:00
2018-09-23 16:23:52 -07:00
2018-09-23 16:23:52 -07:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-10-29 12:57:55 +00:00
2018-10-18 12:36:42 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-10-31 10:47:31 +00:00
2018-10-18 12:36:42 +01:00
2018-09-23 16:23:52 -07:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-12-12 17:26:18 +00:00
2018-10-26 11:07:18 +01:00
2018-10-18 12:36:42 +01:00
2018-10-18 12:36:42 +01:00
2018-10-26 11:07:18 +01:00
2018-09-23 16:24:31 -07:00
2018-10-18 12:36:42 +01:00
2018-09-23 16:23:52 -07:00
2018-10-18 12:36:42 +01:00
2018-10-18 12:36:42 +01:00
2018-12-13 12:23:59 +00:00
2018-10-18 12:36:42 +01:00
2018-10-18 12:36:42 +01:00