Index: Lib/test/test_peepholer.py =================================================================== --- Lib/test/test_peepholer.py (revision 61073) +++ Lib/test/test_peepholer.py (working copy) @@ -202,6 +202,22 @@ self.assertEqual(asm.split().count('JUMP_ABSOLUTE'), 1) self.assertEqual(asm.split().count('RETURN_VALUE'), 2) + def test_elim_unreachable(self): + def f(): + return 1 + return 2 + asm = disassemble(f) + self.assertEqual(asm.split().count('RETURN_VALUE'), 1) + def f(): + while 1: + break + return + asm = disassemble(f) + self.assertEqual(asm.split().count('RETURN_VALUE'), 1) + def f(): + raise RuntimeError + asm = disassemble(f) + self.assert_('RETURN_VALUE' not in asm) def test_main(verbose=None): import sys