#include #include #include #include #define N (20*1024) void sighdlr(int sig) { double a; a = 256; double observed = a; double expected = 257; if ( observed == expected ) printf("Error in sighdlr()\n"); } int main (void) { size_t i, k; struct itimerval itimer = { { 0, 10000}, { 0, 10000} }; signal(SIGALRM, sighdlr); setitimer( ITIMER_REAL, &itimer, NULL); for (k = 1; k < 1000; k++) { double *a = malloc (N * sizeof (double)); if (a == 0) { printf ("malloc failed at k=%u\n", k); exit (1); } for (i = 0; i < N; i++) { a[i] = (double) i; double observed = a[i]; double expected = (double) i; if (observed != expected) { printf ("failed at i=%u, k=%u (obs %.18g vs exp %.18g)\n", i, k, observed, expected); } } for (i = 0; i < N; i++) { double observed = a[i]; double expected = (double) i; if (observed != expected) { printf ("failed at i=%u, k=%u (obs %.18g vs exp %.18g)\n", i, k, observed, expected); // exit (1); } } free (a); } exit (0); }