------- Comment #9 from jakub at gcc dot gnu dot org 2008-08-11 20:17 ------- The darwin -m64 failures are then the same problem, cross-jumping of noreturn calls between different level of stack depths. I've been wrong about DW_CFA_GNU_args_size being useless for cfa.reg != STACK_POINTER_REGNUM, while such directives won't ever be used by the libgcc unwinder, they might be used by debuggers to set correct value of stack pointer, and therefore such directives aren't useless and so we should avoid crossjumping in that case. Not sure how to detect that in crossjumping code though.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37022