summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr83312.c
blob: 2eb241dfdfe3a249f54cc80285840201edcd5c0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* { dg-options "-O2 -Warray-bounds" } */

struct ptlrpcd_ctl {
  char pc_name[20];
};
struct ptlrpcd {
  struct ptlrpcd_ctl pd_threads[6];
};
struct ptlrpcd *ptlrpcd_init_pd;
static void ptlrpcd_ctl_init(struct ptlrpcd_ctl *pc, int index) {
  if (index < 0)
    __builtin_snprintf(pc->pc_name, sizeof(pc->pc_name), "ptlrpcd_rcv");
  else
    __builtin_snprintf(pc->pc_name, sizeof(pc->pc_name), "ptlrpcd_%d", index);
}
int ptlrpcd_init_ncpts;
static int ptlrpcd_init(int nthreads) {
  int j;
  if (ptlrpcd_init_ncpts) {
    ptlrpcd_ctl_init(&ptlrpcd_init_pd->pd_threads[0], -1);
    for (j = 1; j < nthreads; j++)
      ptlrpcd_ctl_init(&ptlrpcd_init_pd->pd_threads[j], j);
  }
  return 0;
}
int ptlrpcd_init_groupsize;
void ptlrpcd_addref(void) {
    ptlrpcd_init(ptlrpcd_init_groupsize);
}