(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr44807.c
       1  /* { dg-do compile } */
       2  
       3  int sigemptyset (int *);
       4  int sigaddset(int, int);
       5  int sigprocmask ();
       6  struct jobstats
       7  {
       8    int j_jobslots;
       9  };
      10  struct jobstats js;
      11  int *jobs;
      12  
      13  typedef int sh_job_map_func_t (int *, int, int, int);
      14  
      15  static void
      16  map_over_jobs (sh_job_map_func_t func)
      17  {
      18    int i;
      19    int set, oset;
      20    if (js.j_jobslots)
      21      return;
      22    sigemptyset (&set);
      23    sigaddset (set, 17);
      24    sigemptyset (&oset);
      25    sigprocmask (0, set, oset);
      26    for (i = 0; js.j_jobslots; i++)
      27      if (jobs[i])
      28        func (jobs, 0, 0, 0);
      29    sigprocmask (oset, ((void *) 0));
      30  }
      31  
      32  int
      33  print_job (int *job, int format, int state, int job_index)
      34  {
      35    map_over_jobs (print_job);
      36  }
      37  
      38  void
      39  list_running_jobs (void)
      40  {
      41    map_over_jobs (print_job);
      42  }
      43