CheckReturn() must be called before emitting code, otherwise it will always return false for switch statements Redundant jump instruction added because of that will point right after the end of function's code when if statement is the last one in the given function This wasn't a problem for VM because bytecode in question was unreachable JIT compiler tries to generate native code for a bogus jump destination, and this leads to out-of-bounds read from labels array https://forum.zdoom.org/viewtopic.php?t=67149 |
||
|---|---|---|
| .. | ||
| codegen.cpp | ||
| codegen.h | ||
| dynarrays.cpp | ||
| scopebarrier.cpp | ||
| scopebarrier.h | ||
| vmbuilder.cpp | ||
| vmbuilder.h | ||
| vmdisasm.cpp | ||