Ilya Zakharevich on Thu, 16 Jan 2003 13:17:20 -0800 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Warning with OSF/1 cc |
On Thu, Jan 16, 2003 at 10:10:43PM +0100, Bill Allombert wrote: > Now the problem is that g++ reject longjmp(e, numerr); and gcc reject > longjmp((jmp_buf) e, numerr) so making code that work with both is > difficult. Unrelated thing: it does not make sense to longjmp() with numerr; one needs to longjmp() with HAVE_ERROR (which is, e.g., 1) after storing saved_numerr = numerr; This is from docs of setjmp() I have: setjmp() may be implemented as macro. setjmp() can be used only in the following contexts: - the entire controlling expression of a do, if, switch, or while statement - the operand to the ! operator if the resulting expression is the entire controlling expression of one of the statements listed above - the operand of a relational or equality operator if the resulting expression is the entire controlling expression of one of the statements listed above and the other operand is an integral constant expression - the entire expression of an expression statement. As you see, there is no way to get the value of numerr from setjmp() [unless we have a switch with one clause per error]. BTW, I fixed the problem of numerr able of being 0 in my copy; I will send a patch some time soon. Ilya