Thanks, Rafael! I'm using revision 133533, so your fix should be in there. We aren't exactly using setjmp, instead we're using some hand-written assembly that performs basically the same task. I'm guessing this is why you fix didn't catch this issue.
Is there an attribute or annotation I can put on my function that says "never use tail call elimination on calls to this function?" If so, that might be a better way to fix it. Writing the whole swap context function in assembly would probably work as well... -Eric ----- Original Message ----- From: "Rafael Ávila de Espíndola" <[email protected]> To: [email protected] Sent: Tuesday, June 21, 2011 9:28:55 PM Subject: Re: [rust-dev] [graydon/rust] edf73f: Setting rt optimization on OS X to -O0 when using ... On 11-06-21 4:17 PM, [email protected] wrote: > Branch: refs/heads/master Home: https://github.com/graydon/rust > > Commit: edf73f051270b0dadf2f6d24070cfe98be6a41e2 > https://github.com/graydon/rust/commit/edf73f051270b0dadf2f6d24070cfe98be6a41e2 > > Author: Eric Holk<[email protected]> > Date: 2011-06-21 (Tue, 21 Jun 2011) > > Changed paths: M mk/platform.mk > > Log Message: ----------- Setting rt optimization on OS X to -O0 when > using clang, like we already do with gcc. Tail-call elimination was > causing valgrind errors with stack switching. Closes #494. What version of clang are you using? This sounds like a bug I fixed some time ago: http://llvm.org/viewvc/llvm-project?view=rev&revision=131399 Cheers, Rafael _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
