1 /* PR tree-optimization/78888 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-evrp" } */
4
5 void kill (void);
6 void keep (void);
7
8 void g (int x)
9 {
10 if (__builtin_toupper ((unsigned char)x) == 'a')
11 kill ();
12 if (__builtin_toupper ((unsigned char)x) == 'z')
13 kill ();
14 if (__builtin_tolower ((unsigned char)x) == 'A')
15 kill ();
16 if (__builtin_tolower ((unsigned char)x) == 'Z')
17 kill ();
18
19 if (__builtin_toupper ((unsigned char)x) == 'A')
20 keep ();
21 if (__builtin_toupper ((unsigned char)x) == 'Z')
22 keep ();
23 if (__builtin_tolower ((unsigned char)x) == 'a')
24 keep ();
25 if (__builtin_tolower ((unsigned char)x) == 'z')
26 keep ();
27 }
28 /* { dg-final { scan-tree-dump-not "kill" "evrp" } } */
29 /* { dg-final { scan-tree-dump-times "keep" 4 "evrp"} } */