OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.dg/] [tree-ssa/] [pr19210-2.c] - Diff between revs 298 and 816

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

Rev 298 Rev 816
/* { dg-do compile } */
/* { dg-do compile } */
/* { dg-options "-O2 -funsafe-loop-optimizations -Wunsafe-loop-optimizations" } */
/* { dg-options "-O2 -funsafe-loop-optimizations -Wunsafe-loop-optimizations" } */
extern void g(void);
extern void g(void);
 
 
void
void
f (unsigned n)
f (unsigned n)
{
{
  unsigned k;
  unsigned k;
  for(k = 0;k <= n;k++) /* { dg-warning "assuming.*not infinite" } */
  for(k = 0;k <= n;k++) /* { dg-warning "assuming.*not infinite" } */
    g();
    g();
 
 
  for(k = 5;k <= n;k += 4) /* { dg-warning "assuming.*not overflow" } */
  for(k = 5;k <= n;k += 4) /* { dg-warning "assuming.*not overflow" } */
    g();
    g();
 
 
  /* We used to get warning for this loop.  However, since then # of iterations
  /* We used to get warning for this loop.  However, since then # of iterations
     analysis improved, and we can now prove that this loop does not verflow.
     analysis improved, and we can now prove that this loop does not verflow.
     This is because the only case when it would overflow is if n = ~0 (since
     This is because the only case when it would overflow is if n = ~0 (since
     ~0 is divisible by 5), and this cannot be the case, since when we got
     ~0 is divisible by 5), and this cannot be the case, since when we got
     here, the previous loop exited, thus there exists k > n.  */
     here, the previous loop exited, thus there exists k > n.  */
  for(k = 5;k <= n;k += 5)
  for(k = 5;k <= n;k += 5)
    g();
    g();
 
 
  for(k = 4;k <= n;k += 5) /* { dg-warning "assuming.*not overflow" } */
  for(k = 4;k <= n;k += 5) /* { dg-warning "assuming.*not overflow" } */
    g();
    g();
 
 
  for(k = 15;k >= n;k--) /* { dg-warning "assuming.*not infinite" } */
  for(k = 15;k >= n;k--) /* { dg-warning "assuming.*not infinite" } */
    g();
    g();
 
 
}
}
 
 

powered by: WebSVN 2.1.0

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