Hi Edwin, > flow.c: In function `doCatch': > flow.c:1351: warning: argument `x' might be clobbered by `longjmp' or `vfork'
This message is familiar to me, both when we used OpenBSD at a customer's site, and for some older versions of Linux (i.e. an older 'gcc'). I investigated it deeper at that time, and came to the conclusion that it is not critical (at least I never observed any problems ;) The reason must have to do how the compiler saves the environment, including the state of local variables like 'x', and how the code resumes when a longjmp() is executed. For me, it is a bug in the compiler, as it is its duty to properly save and restored its stuff. IIRC, the warning disappears when 'x' is declared as a volatile variable, but I don't know if that has any adverse side effects then. Still the question remains why the compiler, after it detects that the variable might be "clobbered", it doesn't take appropriate measures by itself. The best solution is to use a more up-to-date version of 'gcc', or - even better - use the 64-bit version which avoids 'C' :-) Cheers, - Alex -- UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe
