We ran into the following bug.

int a[1024];
void r(unsigned int n)
{
  unsigned int i,j;
  for (i=0; i<n; i++) {
  for (j=0; j<n; j++) {
        a[i]++;
  }
  }
}


At -O3, LNO outer unrolls the outer loop by setting the bound to 
"i<n-u+1", creating an infinite loop whenever "n" is less than the 
unroll factor.  My memory is faded, but I thought it wasn't supposed to 
do that for unsigned loops.  From a quick scan of the code, I didn't 
find anything that checks.  Anyone have experience with this or a better 
recollection than I do?

Dror

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to