Idle bytecode query on apparently unreachable returns
nnorwitz at gmail.com
Mon Oct 10 04:01:25 CEST 2005
Tom Anderson wrote:
> Evening all,
> Here's a brief chat with the interpretator:
> What puzzles me, though, are bytecodes 17, 39 and 42 - surely these aren't
> reachable? Does the compiler just throw in a default 'return None'
> epilogue, with routes there from every code path, even when it's not
> needed? If so, why?
I think the last RETURN_VALUE (None) isn't thrown in unless there is
some sort of conditional the precedes it as in this example.
As to why: it's easier and no one has done anything about fixing it.
If you (or anyone else) are interested, the code is in
Python/compile.c. Search for the optimize_code() function.
More information about the Python-list