42 lines
555 B
C
42 lines
555 B
C
/* { dg-do compile } */
|
|
/* { dg-options "-Wuninitialized -O2" } */
|
|
|
|
int g;
|
|
int bar();
|
|
int blah(int);
|
|
void t(int);
|
|
|
|
__attribute__((always_inline))
|
|
int foo (int n, int* v, int r)
|
|
{
|
|
int flag = 0;
|
|
if (r > n)
|
|
{
|
|
*v = bar();
|
|
flag = 1;
|
|
}
|
|
|
|
if (n > g)
|
|
g++;
|
|
else
|
|
bar();
|
|
|
|
return flag;
|
|
}
|
|
|
|
int a[100];
|
|
int b[100];
|
|
int blah(int n)
|
|
{
|
|
int i;
|
|
for (i = 0 ; i < n; i++)
|
|
{
|
|
int v;
|
|
if (!foo (n, &v, b[i]))
|
|
return 0;
|
|
t (v); /* { dg-bogus "uninitialized" "bogus warning" } */
|
|
}
|
|
return 1;
|
|
}
|
|
|