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;
|
||
|
}
|
||
|
|