1 /* PR tree-optimization/17512
2 
3    We used to try to fold "(char) (X ^ Y)", where '^' is
4    TRUTH_XOR_EXPR into ((char) X ^ (char) Y), creating TRUTH_XOR_EXPR
5    with its operands being of type char, which is invalid.  */
6 
7 char
foo(int p)8 foo (int p)
9 {
10   int q = p;
11   return (p != 0) == (p == q);
12 }
13