http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55857



--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-03 
10:50:26 UTC ---

One that reproduces the checking failure:



void foo (int *data, unsigned len, const int qlp_coeff[], 

          unsigned order, int lp, int residual[])

{

  int i;

  int sum;

  if(order == 2)

    for(i = 0; i < (int)len; i++)

      {

        sum = 0;

        sum += qlp_coeff[1] * data[i-2]; 

        sum += qlp_coeff[0] * data[i-1];

        residual[i] = data[i] - (sum >> lp);

      }

  else

    for(i = 0; i < (int)len; i++)       

      residual[i] = data[i] - ((qlp_coeff[0] * data[i-1]) >> lp);

}

Reply via email to