1/*
2 *  Bug in original tree: (real_v ? : x) had been treated as equivalent of
3 *  (real_v == 0 ? real_v == 0 : x), which gives the wrong type (and no
4 *  warning from the testcase below).
5 */
6static int x;
7static double y;
8int a(void)
9{
10	return ~(y ? : x);	/* should warn */
11}
12/*
13 * check-name: Two-argument conditional expression types
14 *
15 * check-error-start
16cond_expr.c:10:16: error: incompatible type for operation (~):
17cond_expr.c:10:16:    double
18 * check-error-end
19 */
20