From: Nathan Chancellor > Sent: 28 August 2019 19:45 ... > However, I think that -fno-builtin-* would be appropriate here because > we are providing our own setjmp implementation, meaning clang should not > be trying to do anything with the builtin implementation like building a > declaration for it.
Isn't implementing setjmp impossible unless you tell the compiler that you function is 'setjmp-like' ? For instance I think it all goes horribly wrong if the generated code looks like: push local_variable // setup arguments to setjmp call setjmp pop local_variable // check return value of setjmp With a naive compiler and simple ABI setjmp just has to save the return address, stack pointer and caller saved registers. With modern compilers and ABI I doubt you can implement setjmp without some help from the compiler. It is probably best to avoid setjmp/longjmp completely. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)