| /* Various integration tests for setjmp-handling expect a precise |
| multiline output. |
| |
| The outputs from -fdiagnostics-path-format=inline-events for such |
| setjmp tests are dependent on whether setjmp is a macro or a function |
| (and whether that macro is defined in a system header). |
| |
| setjmp is a function on some systems and a macro on others. |
| This header provides a SETJMP macro in a (fake) system header, |
| along with precanned decls of setjmp, for consistency of output across |
| different systems. */ |
| |
| #pragma GCC system_header |
| |
| struct __jmp_buf_tag {}; |
| typedef struct __jmp_buf_tag jmp_buf[1]; |
| typedef struct __jmp_buf_tag sigjmp_buf[1]; |
| |
| extern int setjmp(jmp_buf env); |
| extern int sigsetjmp(sigjmp_buf env, int savesigs); |
| |
| extern void longjmp(jmp_buf env, int val); |
| extern void siglongjmp(sigjmp_buf env, int val); |
| |
| #define SETJMP(E) setjmp(E) |