While debugging the crash with optimizations enabled, I noticed that on OS X esp was not 16 byte aligned at the start of _rust_fn3_main. As a hack to find the remaining problems I added a rust_sp -= 12; to rust_task::start, but a more complete accounting of the used stack is needed.