blob: be718aba692a7c365056cd03a8009e08aa7ea977 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2" } */
/* Ensure that BIT_FIELD_REFs gets the appropriate VUSE.
Contributed by Paolo Bonzini <bonzini@gnu.org>.
This testcase actually never triggered in the CVS repo, but it did
in my local tree and it seems worth testing. In this test, the if's
are folded to BIT_FIELD_REFs but the VUSEs were erroneously left out.
Therefore, DOM did not see that i was modified between the two ifs
and optimized away the second if. */
extern void abort (void);
extern void exit (int);
struct x
{
unsigned b:1;
unsigned c:1;
};
struct x i = { 1, 1 };
int
main ()
{
i.b = 1;
if (i.b == 1 && i.c == 0)
exit (0);
i.c = 0;
if (i.b == 1 && i.c == 0)
exit (0);
abort ();
}