This reverts commit 83ead0842f. Note: does not compile. It turns out basic dead block removal is needed for the "control reaches end of non-void function" warning to work correctly.
83ead0842f