42 #define CPP_STR1(s) #s 43 #define CPP_STR(s) CPP_STR1(s) 45 #define CPP_CAT1(x, y) x ## y 46 #define CPP_CAT(x, y) CPP_CAT1(x, y) 51 #if defined(__clang__) 53 #define CC_MAJOR __clang_major__ 54 #define CC_MINOR __clang_minor__ 55 #define CC_PATCHLEVEL __clang_patchlevel__ 57 #elif defined(__GNUC__) 59 #define CC_MAJOR __GNUC__ 60 #define CC_MINOR __GNUC_MINOR__ 61 #define CC_PATCHLEVEL __GNUC_PATCHLEVEL__ 63 #elif defined(_MSC_FULL_VER) 65 #define CC_MAJOR (_MSC_FULL_VER / 1000000) 66 #define CC_MINOR (_MSC_FULL_VER % 1000000 / 10000) 67 #define CC_PATCHLEVEL (_MSC_FULL_VER % 10000) 69 #elif defined(_MSC_VER) 71 #define CC_MAJOR (_MSC_VER / 100) 72 #define CC_MINOR (_MSC_VER % 100) 73 #define CC_PATCHLEVEL 0 79 #define CC_PATCHLEVEL 0 87 #if defined(__DATE__) && defined(__TIME__) 88 #define COMPILED_AT __DATE__ ", " __TIME__ 90 #define COMPILED_AT "unknown date" 96 #if defined(_WIN32) && !defined(__CYGWIN__) 109 #pragma warning(disable : 4996) 112 #define MAXPATHLEN 1024 113 #define SIGQUIT SIGTERM 114 #define fdopen _fdopen 117 #define getcwd _getcwd 120 #define pclose _pclose 122 #define pclose _pclose 123 #define getpid _getpid 124 #define tempnam _tempnam 125 #define unlink _unlink 127 #define access _access 129 #define strcasecmp stricmp 130 #define strncasecmp strnicmp 131 #define spawnvp _spawnvp 142 #define S_ISDIR(m) (((m)&_S_IFMT) == _S_IFDIR) 143 #define S_ISCHR(m) (((m)&_S_IFMT) == _S_IFCHR) 144 #define S_ISFIFO(m) (((m)&_S_IFMT) == _S_IFIFO) 145 #define S_ISREG(m) (((m)&_S_IFMT) == _S_IFREG) 149 #define S_IRUSR _S_IREAD 150 #define S_IWUSR _S_IWRITE 151 #define S_IXUSR _S_IEXEC 154 #define DIR_SEP_S "\\" 155 #define DIR_SEP_C '\\' 156 #define DIR_SEP_C_ALT '/' 158 #elif defined(__CYGWIN__) 160 #define DIR_SEP_S "/" 161 #define DIR_SEP_C '/' 162 #define DIR_SEP_C_ALT '\\' 166 #define DIR_SEP_S "/" 167 #define DIR_SEP_C '/' 168 #define DIR_SEP_C_ALT '/' 172 #define Is_Dir_Sep(c) ((c) == DIR_SEP_C || (c) == DIR_SEP_C_ALT) 176 #define Find_Last_Dir_Sep(_p, _path) \ 180 for((_p) = NULL, _ptr = (_path); *_ptr; _ptr++) \ 181 if (Is_Dir_Sep(*_ptr)) \ 187 #define Has_Drive_Specif(str) \ 188 (((*(str) >= 'a' && *(str) <= 'z') || (*(str) >= 'A' && *(str) <= 'Z')) && (str)[1] == ':') 192 #if defined(M_ix86_cygwin) || defined(M_ix86_sco) 193 #define Set_Line_Buf(s) setvbuf(s, NULL, _IOLBF, 0) 194 #elif defined(_WIN32) 195 #define Set_Line_Buf(s) setbuf(s, NULL) 197 #define Set_Line_Buf(s) setlinebuf(s) 201 #ifndef NO_USE_GUI_CONSOLE 202 #define W32_GUI_CONSOLE 206 #define __USE_FIXED_PROTOTYPES__ 210 #if defined(M_ix86_sco) 213 #define MAXPATHLEN 1024 220 #if !defined(_WIN32) && !defined(__unix__) 229 #ifndef HAVE_SIGSETJMP 230 #define sigjmp_buf jmp_buf 231 #define sigsetjmp(jb, x) setjmp(jb) 232 #define siglongjmp longjmp 235 #if defined(_WIN64) && !defined(_MSC_VER) 262 #define setjmp(buf) _setjmp(buf, NULL) 270 #define COULD_COMPILE_FOR_FC 272 #define FC_MAX_ARGS_IN_REGS 3 273 #define FC_SET_OF_REGISTERS { "%eax", "%edx", "%ecx" }; 274 #define FC_ATTRIB __attribute__((regparm(FC_MAX_ARGS_IN_REGS))) 277 #define FC_MAX_ARGS_IN_REGS 2 278 #define FC_SET_OF_REGISTERS { "%ecx", "%edx" }; 279 #define FC_ATTRIB __fastcall 281 #define FC_MAX_ARGS_IN_REGS 0 282 #define FC_SET_OF_REGISTERS { NULL }; 288 #if !defined(NO_USE_FAST_CALL) && defined(FC_ATTRIB) 289 #define FC_USED_TO_COMPILE_CORE 300 #if defined(_WIN32) && !defined(_WIN64) || defined(__CYGWIN__) 307 ExceptContinueExecution,
308 ExceptContinueSearch,
309 ExceptNestedException,
311 } EXCEPT_DISPOSITION;
316 EXCEPT_DISPOSITION (*
handler)();
321 # define SEH_PUSH(new_handler) \ 324 EXCEPT_DISPOSITION new_handler(); \ 325 e.handler = new_handler; \ 326 asm("movl %%fs:0,%0" : "=r" (e.chain)); \ 327 asm("movl %0,%%fs:0" : : "r" (&e)); 331 asm("movl %0,%%fs:0" : : "r" (e.chain)); \ 334 #elif defined(_MSC_VER) 336 # pragma warning(disable:4733) 338 # define SEH_PUSH(new_handler) \ 341 EXCEPT_DISPOSITION new_handler(); \ 342 e.handler = new_handler; \ 344 __asm mov eax,dword ptr fs:[0] \ 345 __asm mov dword ptr [e.chain],eax \ 347 __asm mov dword ptr fs:[0],eax \ 352 __asm mov eax,dword ptr [e.chain] \ 353 __asm mov dword ptr fs:[0],eax \ 357 #elif defined(__LCC__) 360 # define SEH_PUSH(new_handler) \ 363 EXCEPT_DISPOSITION new_handler(); \ 364 e.handler = new_handler; \ 365 _asm("pushl %eax"); \ 366 _asm("movl %fs:0,%eax"); \ 367 _asm("movl %eax,%e"); \ 368 _asm("leal %e,%eax"); \ 369 _asm("movl %eax,%fs:0"); \ 373 _asm("pushl %eax"); \ 374 _asm("movl %e,%eax"); \ 375 _asm("movl %eax,%fs:0"); \ 381 # error macros SEH_PUSH/POP undefined for this compiler Definition: WIN32_all_SIGSEGV.c:18
EXCEPTION_DISPOSITION(* handler)()
Definition: WIN32_all_SIGSEGV.c:21
struct _excp_lst * chain
Definition: WIN32_all_SIGSEGV.c:20
struct _excp_lst excp_lst