#optimizer fix
If you're jumping to location 4, your code is probably attempting to call a
function pointer that has not been properly initialized or that has been
trashed by another bug. The compiler won't generate a call to location 4.
There are several possible causes for why your code works optimized. If
you've got a memory-trashing bug, as it sounds like you might, then
the changes caused by optimization might change the symptoms – i.e. a
different piece of memory gets trashed.
Try using memlib in SC:EXTRAS and see if any memory-trashing problems come
up. Make sure you are running SC:C/Enforcer and SC:C/Mungwall to get the
best diagnostics possible.
–Doug