/* { dg-require-stack-size "1004*4+2*8" } */ int pid_count = 0; unsigned int getopt (int, const char**, const char*); unsigned long long atoll (const char*); int fork (void); void kill (int, int); int main (int argc, const char *argv[]) { unsigned int c; unsigned long long maxbytes = 0; extern const char *optarg; int i; int pid_cntr; int pid; int pid_list[1000]; while ((c = getopt (argc, argv, "c:b:p:wvh")) != (-1)) { switch ((char) c) { case 'b': maxbytes = atoll (optarg); } } pid = fork (); while ((pid != 0) && (maxbytes > 1024 * 1024 * 1024)) { maxbytes = maxbytes - (1024 * 1024 * 1024); pid = fork (); if (pid != 0) pid_cntr++; pid_list[i] = pid; } while ((pid_count < pid_cntr)) { } kill (pid_list[i], 9); }