Merge from mainline (gomp-merge-2005-02-26).
[official-gcc.git] / gcc / testsuite / gcc.dg / uninit-9.c
blob62681f9e0fdbec4a00d4d6ef5b6afaefc59eb59b
1 /* Spurious uninitialized variable warnings. Slight variant on the
2 documented case, inspired by reg-stack.c:record_asm_reg_life. */
4 /* { dg-do compile } */
5 /* { dg-options "-O -Wuninitialized" } */
7 struct foo
9 int type;
10 struct foo *car;
11 struct foo *cdr;
12 char *data;
13 int data2;
16 extern void use(struct foo *);
18 #define CLOBBER 6
19 #define PARALLEL 3
21 void
22 func(struct foo *list, int count)
24 int n_clobbers = 0;
25 int i;
26 struct foo **clob_list; /* { dg-bogus "clob_list" "uninitialized variable warning" { xfail *-*-* } } */
28 if(list[0].type == PARALLEL)
30 clob_list = __builtin_alloca(count * sizeof(struct foo *));
32 for(i = 1; i < count; i++)
34 if(list[i].type == CLOBBER)
35 clob_list[n_clobbers++] = &list[i];
39 for(i = 0; i < n_clobbers; i++)
40 use(clob_list[i]);