1  /* { dg-add-options stack_size } */
       2  
       3  #if defined(STACK_SIZE) && (STACK_SIZE < 65536)
       4  # define BYTEMEM_SIZE 10000L
       5  #endif
       6  
       7  #ifndef BYTEMEM_SIZE
       8  # define BYTEMEM_SIZE 45000L
       9  #endif
      10  
      11  int bytestart[5000 + 1];
      12  unsigned char modtext[400 + 1];
      13  unsigned char bytemem[2][BYTEMEM_SIZE + 1];
      14  
      15  long
      16  modlookup (int l)
      17  {
      18    signed char c;
      19    long j;
      20    long k;
      21    signed char w;
      22    long p;
      23    while (p != 0)
      24      {
      25        while ((k < bytestart[p + 2]) && (j <= l) && (modtext[j] == bytemem[w][k]))
      26  	{
      27  	  k = k + 1;
      28  	  j = j + 1;
      29  	}
      30        if (k == bytestart[p + 2])
      31  	if (j > l)
      32  	  c = 1;
      33  	else c = 4;
      34        else if (j > l)
      35  	c = 3;
      36        else if (modtext[j] < bytemem[w][k])
      37  	c = 0;
      38        else c = 2;
      39      }
      40  }