/* PR tree-optimization/17512 We used to try to fold "(char) (X ^ Y)", where '^' is TRUTH_XOR_EXPR into ((char) X ^ (char) Y), creating TRUTH_XOR_EXPR with its operands being of type char, which is invalid. */ char foo (int p) { int q = p; return (p != 0) == (p == q); }