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  */
   6 static int x;
   7 static double y;
   8 int a(void)
   9 {
  10         return ~(y ? : x);      /* should warn */
  11 }
  12 /*
  13  * check-name: Two-argument conditional expression types
  14  *
  15  * check-error-start
  16 cond_expr.c:10:16: error: incompatible types for operation (~)
  17 cond_expr.c:10:16:    argument has type double
  18  * check-error-end
  19  */