111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details -w" } */
|
|
3
|
|
4 const extern char *__ctype_ptr__;
|
|
5 typedef unsigned char uchar;
|
|
6 static int patlen;
|
|
7 static int skip[(0x7f * 2 + 1) + 1];
|
|
8 static uchar *pat = ((void *) 0);
|
|
9 void
|
|
10 bmhi_init (const char *pattern)
|
|
11 {
|
|
12 int i, lastpatchar;
|
|
13 patlen = strlen (pattern);
|
|
14 for (i = 0; i < patlen; i++)
|
|
15 pat[i] = (
|
|
16 {
|
|
17 __typeof__ (pattern[i]) __x = (pattern[i]);
|
|
18 ((((__ctype_ptr__ +
|
|
19 sizeof (""[__x]))[(int) (__x)]) & (01 | 02))
|
|
20 == 02) ? (int) __x - 'a' + 'A' : (int) __x;
|
|
21 });
|
|
22 for (i = 0; i < patlen - 1; ++i)
|
|
23 {
|
|
24 skip[(
|
|
25 {
|
|
26 __typeof__ (pat[i]) __x = (pat[i]);
|
|
27 ((((__ctype_ptr__ +
|
|
28 sizeof (""[__x]))[(int) (__x)]) & (01 | 02)) ==
|
|
29 01) ? (int) __x - 'A' + 'a' : (int) __x;
|
|
30 })] = patlen - i - 1;
|
|
31 }
|
|
32 skip[(
|
|
33 {
|
|
34 __typeof__ (lastpatchar) __x = (lastpatchar);
|
|
35 ((((__ctype_ptr__ +
|
|
36 sizeof (""[__x]))[(int) (__x)]) & (01 | 02)) ==
|
|
37 01) ? (int) __x - 'A' + 'a' : (int) __x;
|
|
38 })] = 32767;
|
|
39 for (i = 0; i < patlen - 1; ++i)
|
|
40 {
|
|
41 }
|
|
42 }
|
|
43
|
|
44 /* { dg-final { scan-tree-dump-times "Duplicating join block" 1 "split-paths" } } */
|