1 /* PR tree-optimization/34648 */
2
3 /* { dg-options "-fexceptions" } */
4 /* { dg-require-effective-target exceptions } */
5
6 extern const unsigned short int **bar (void) __attribute__ ((const));
7 const char *a;
8 int b;
9 char c;
10
11 char
foo(int * x)12 foo (int *x)
13 {
14 char r;
15
16 c = '\0';
17 if (!b)
18 {
19 while (((*bar ())[a[*x]] & 0x2000) != 0)
20 (*x)++;
21 if (a[++(*x)] == '-')
22 {
23 (*x)++;
24 if (a[*x] && !((*bar ())[a[*x]] & 0x2000))
25 return '?';
26 }
27 if (!a[*x] || ((*bar ())[a[*x]] & 0x2000))
28 {
29 while (((*bar ())[a[*x]] & 0x2000))
30 ++(*x);
31 return '\0';
32 }
33 }
34
35 r = a[*x];
36 b = a[*x] && !((*bar ())[a[*x]] & 0x2000);
37 return r;
38 }
39
40