OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gcc.dg/] [tree-ssa/] [20040324-1.c] - Diff between revs 298 and 384

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 298 Rev 384
/* { dg-do run } */
/* { dg-do run } */
/* { dg-options "-O2" } */
/* { dg-options "-O2" } */
 
 
/* Ensure that BIT_FIELD_REFs gets the appropriate VUSE.
/* Ensure that BIT_FIELD_REFs gets the appropriate VUSE.
   Contributed by Paolo Bonzini  <bonzini@gnu.org>.
   Contributed by Paolo Bonzini  <bonzini@gnu.org>.
 
 
   This testcase actually never triggered in the CVS repo, but it did
   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
   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.
   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
   Therefore, DOM did not see that i was modified between the two ifs
   and optimized away the second if.  */
   and optimized away the second if.  */
 
 
extern void abort (void);
extern void abort (void);
extern void exit (int);
extern void exit (int);
 
 
struct x
struct x
{
{
  unsigned b:1;
  unsigned b:1;
  unsigned c:1;
  unsigned c:1;
};
};
 
 
struct x i = { 1, 1 };
struct x i = { 1, 1 };
 
 
int
int
main ()
main ()
{
{
  i.b = 1;
  i.b = 1;
  if (i.b == 1 && i.c == 0)
  if (i.b == 1 && i.c == 0)
    exit (0);
    exit (0);
  i.c = 0;
  i.c = 0;
  if (i.b == 1 && i.c == 0)
  if (i.b == 1 && i.c == 0)
    exit (0);
    exit (0);
  abort ();
  abort ();
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.