http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54289
--- Comment #9 from Dmitry <dmitriy-hshg at mail dot ru> 2012-08-16 19:55:57 UTC --- C standard: The header <setjmp.h> defines the macro setjmp, and declares one function and one type, for bypassing the normal function call and return discipline. OK. I agree with you. But one moment. If my system is BSD I will write std::setjmp() that isn't good. May be better: __BEGIN_NAMESPACE_STD typedef struct __jmp_buf_tag jmp_buf[1]; __END_NAMESPACE_STD extern int setjmp (jmp_buf __env) __THROW; I think setjmp should be outside of std.