Back to index

glibc  2.9
jmpbug.c
Go to the documentation of this file.
00001 /* setjmp vs alloca test case.  Exercised bug on sparc.  */
00002 
00003 #include <stdio.h>
00004 #include <setjmp.h>
00005 #include <alloca.h>
00006 
00007 static void
00008 sub5 (jmp_buf buf)
00009 {
00010   longjmp (buf, 1);
00011 }
00012 
00013 static void
00014 test (int x)
00015 {
00016   jmp_buf buf;
00017   char *foo;
00018   int arr[100];
00019 
00020   arr[77] = x;
00021   if (setjmp (buf))
00022     {
00023       printf ("made it ok; %d\n", arr[77]);
00024       return;
00025     }
00026 
00027   foo = (char *) alloca (128);
00028   sub5 (buf);
00029 }
00030 
00031 int
00032 main (void)
00033 {
00034   int i;
00035 
00036   for (i = 123; i < 345; ++i)
00037     test (i);
00038 
00039   return 0;
00040 }