blob: a49874df5da4106a0549128129329d0c81a22cc1 [file] [log] [blame]
/* PR middle-end/101671 - pr83510 fails with -Os because threader confuses
-Warray-bounds
{ dg-do compile }
{ dg-options "-Os -Wall" } */
extern int f (void);
extern void sink (unsigned int);
unsigned int a[10];
static unsigned int g (int i, int j)
{
if (i == 9)
return j;
else if (i == 10)
return a[i]; // no warning here
return 0;
}
void test_g (int j)
{
for (int i = 0; i < 10; i++)
{
if (f ())
sink (g (i, j));
}
}
static unsigned int h (int i, int j)
{
switch (i)
{
case 9:
return j;
case 10:
return a[i]; // { dg-bogus "-Warray-bounds" "pr101671" { xfail *-*-* } }
}
return 0;
}
void test_h (int j)
{
for (int i = 0; i < 10; i++)
{
if (f ())
sink (h (i, j));
}
}