1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom2" } */
3 
4 typedef unsigned int cppchar_t;
5 void foo (void);
6 cppchar_t oof (void);
7 cppchar_t
cpp_parse_escape(pstr,limit,wide)8 cpp_parse_escape (pstr, limit, wide)
9      const unsigned char **pstr;
10      const unsigned char *limit;
11      int wide;
12 {
13   cppchar_t i = 0;
14   int overflow = 0;
15   cppchar_t mask = ~0;
16 
17    while (*pstr < limit)
18      {
19        overflow |= i ^ (i << 4 >> 4);
20        i = oof ();
21      }
22    if (overflow |  (i != (i & mask)))
23      foo();
24 }
25 
26 /* There should be precisely three IF statements.  If there is
27    more than two, then the dominator optimizations failed.  */
28 /* { dg-final { scan-tree-dump-times "if " 3 "dom2"} } */
29