avr-libc-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-libc-dev] [bugs #4101] setjmp/longjmp destroy changes in global


From: Paul Schlie
Subject: Re: [avr-libc-dev] [bugs #4101] setjmp/longjmp destroy changes in global registers
Date: Mon, 17 Jan 2005 17:39:21 -0500
User-agent: Microsoft-Entourage/11.1.0.040913

> From: Joerg Wunsch <address@hidden>
> 
>> Is it possible you've got this backward? As I understand it, the fix
>> is appropriate for all newer releases GCC >= 3.4, ...
> 
> According to my own test with Dmitry's script, and to Dmitry himself,
> alas no.  It worked for his 3.3.x GCC, while it breaks on my 3.4.1,
> and Dmitry noticed then it also breaks on a pre-4.x snapshot.
> 
> I would have loved to see it the other way 'round, too.
> -- 

What were you checking for? As although I wouldn't call it comprehensive,
from some basic experiments I've been trying, it appears that although 4.0
doesn't seem to restore callee pushed registers (which I know doesn't seem
correct), I haven't been successful in breaking any code with the newest
setjump patch, as GCC 4.0 seems to be only using registers r2-r17 as
temporaries within statement expression evaluations, not across them, as
such I haven't found a case where it matters yet?

Have you tried experimenting with 4.0, it builds if you use either my old
patch, or a more proper fix that Roger Sayle posted a few days ago on the
gcc patches list?

(I know I may be missing something obvious, but just wanted to ask if you
may take a look when you have a chance.)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]