| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details -w" } */ |
| |
| const extern signed char *__ctype_ptr__; |
| typedef unsigned char uchar; |
| static int patlen; |
| static int skip[(0x7f * 2 + 1) + 1]; |
| static uchar *pat = ((void *) 0); |
| void |
| bmhi_init (const signed char *pattern) |
| { |
| int i, lastpatchar; |
| patlen = __builtin_strlen (pattern); |
| for (i = 0; i < patlen; i++) |
| pat[i] = ( |
| { |
| __typeof__ (pattern[i]) __x = (pattern[i]); |
| ((((__ctype_ptr__ + |
| sizeof (""[__x]))[(int) (__x)]) & (01 | 02)) |
| == 02) ? (int) __x - 'a' + 'A' : (int) __x; |
| }); |
| for (i = 0; i < patlen - 1; ++i) |
| { |
| skip[( |
| { |
| __typeof__ (pat[i]) __x = (pat[i]); |
| ((((__ctype_ptr__ + |
| sizeof (""[__x]))[(int) (__x)]) & (01 | 02)) == |
| 01) ? (int) __x - 'A' + 'a' : (int) __x; |
| })] = patlen - i - 1; |
| } |
| skip[( |
| { |
| __typeof__ (lastpatchar) __x = (lastpatchar); |
| ((((__ctype_ptr__ + |
| sizeof (""[__x]))[(int) (__x)]) & (01 | 02)) == |
| 01) ? (int) __x - 'A' + 'a' : (int) __x; |
| })] = 32767; |
| for (i = 0; i < patlen - 1; ++i) |
| { |
| } |
| } |
| |
| /* { dg-final { scan-tree-dump-times "join point for if-convertable half-diamond" 1 "split-paths" } } */ |