extern int printf (const char *__restrict __format, ...); typedef long int __time_t; typedef long int __suseconds_t; struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); typedef long int __jmp_buf[8]; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; struct __jmp_buf_tag { __jmp_buf __jmpbuf; int __mask_was_saved; __sigset_t __saved_mask; }; typedef struct __jmp_buf_tag jmp_buf[1]; extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__)); extern void longjmp (struct __jmp_buf_tag __env[1], int __val) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); extern int bar (void); int __attribute__ ((noinline, noclone)) get_input (void) { return 0; } static jmp_buf buf; int foo (void) { if (get_input ()) longjmp(buf, 1); return 0; } volatile int z; int main (void) { struct timeval tv; struct timezone tz; bar(); if (setjmp (buf)) return 1; if (!get_input ()) { gettimeofday (&tv, &tz); z = 0; printf ("This is from main %i\n", tz.tz_dsttime); } foo (); bar (); bar (); return 0; }