1 /* { dg-require-stack-size "1004*4+2*8" } */
2 
3 int pid_count = 0;
4 
5 unsigned int getopt (int, const char**, const char*);
6 unsigned long long atoll (const char*);
7 int fork (void);
8 void kill (int, int);
9 
10 int
main(int argc,const char * argv[])11 main (int argc, const char *argv[])
12 {
13   unsigned int c;
14   unsigned long long maxbytes = 0;
15   extern const char *optarg;
16   int i;
17   int pid_cntr;
18   int pid;
19   int pid_list[1000];
20   while ((c = getopt (argc, argv, "c:b:p:wvh")) != (-1))
21     {
22       switch ((char) c)
23 	{
24 	case 'b':
25 	  maxbytes = atoll (optarg);
26 	}
27     }
28   pid = fork ();
29   while ((pid != 0) && (maxbytes > 1024 * 1024 * 1024))
30     {
31       maxbytes = maxbytes - (1024 * 1024 * 1024);
32       pid = fork ();
33       if (pid != 0)
34 	pid_cntr++;
35       pid_list[i] = pid;
36     }
37   while ((pid_count < pid_cntr))
38     {
39     }
40   kill (pid_list[i], 9);
41 }
42