longjmp()/setjmp() difference between gcc 3.3 (Apple) and gcc 3.4.x

Remy Martin vsxo@hotmail.com
Sun Jan 23 04:34:00 GMT 2005


> > setjmp() needs to be called only once, I think..
>
>Incorrect.  Once you leave the frame in which setjmp was called,
>the contents of the jmpbuf become invalid.

Hmm. This explains my observation on the counter variable, but the (forced) 
jump itself is executed correctly. Can that be because setjmp's frame was 
called in a loop doing hardly anything else, so that the jmpbuf contents 
remained largely valid?
Or can I take your remark to mean that if I call the function that does the 
setjmp (contains the jump target) from my main(), the jmpbuf will remain 
valid?

R.




More information about the Gcc mailing list