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
modlookup(int l)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 }
41