2018-05-17 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / pr47381-1.c
blob738a892083bdfac964dc1f7a6bbf3e55b9362102
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
4 typedef unsigned IPos;
5 typedef unsigned char uch;
6 extern uch window[];
7 unsigned max_chain_length;
8 unsigned strstart;
9 int longest_match(IPos cur_match, int len, int best_len)
11 unsigned chain_length = max_chain_length;
12 register uch *scan = window + strstart;
13 register uch *match;
14 register uch scan_end1 = scan[best_len-1];
15 register uch scan_end = scan[best_len];
16 do {
18 match = window + cur_match;
19 if (match[best_len] != scan_end ||
20 match[best_len-1] != scan_end1 ||
21 *match != *scan ||
22 *++match != scan[1]) continue;
23 best_len = len;
24 } while ( --chain_length != 0);
25 return best_len;