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

Reply via email to