1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details -w" } */ 3 4 const extern signed 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 bmhi_init(const signed char * pattern)10bmhi_init (const signed char *pattern) 11 { 12 int i, lastpatchar; 13 patlen = __builtin_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 "join point for if-convertable half-diamond" 1 "split-paths" } } */ 45