/* { dg-options "-O2 -floop-block -ffast-math" } */

typedef unsigned char   UChar;
typedef int             Int32;
typedef unsigned int    UInt32;
void VPrintf0(const char *);
void AssertH (int, int);

void fallbackSort ( UInt32* fmap, 
                    UInt32* eclass, 
                    Int32   nblock,
                    Int32   verb )
{
   Int32 ftab[257];
   Int32 ftabCopy[256];
   Int32 H, i, j, k, l, r, cc, cc1;
   Int32 nNotDone;
   Int32 nBhtab;
   UChar* eclass8 = (UChar*)eclass;

   if (verb >= 4)
      VPrintf0 ( "        bucket sorting ...\n" );
   for (i = 0; i < 257;    i++) ftab[i] = 0;
   for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
   for (i = 0; i < 256;    i++) ftabCopy[i] = ftab[i];
   for (i = 1; i < 257;    i++) ftab[i] += ftab[i-1];

   for (i = 0; i < nblock; i++) {
      j = eclass8[i] + ftab [i];
   }
   AssertH ( j < 256, 1005 );
}
