1 static int a[] = {
   2         [0 + 0] = 0,                                            // OK
   3         [0 + 0.] = 0,                                           // KO
   4         [(void*)0 + 0] = 0,                                     // KO
   5         [0 + __builtin_choose_expr(0, 0, 0)] = 0,               // OK
   6         [0 + __builtin_choose_expr(0, 0., 0)] = 0,              // OK
   7         [0 + __builtin_choose_expr(0, 0, 0.)] = 0,              // KO
   8         [0 < 0] = 0,                                         // OK
   9         [0 < 0.] = 0,                                                // KO
  10         [0 < __builtin_choose_expr(0, 0, 0)] = 0,            // OK
  11         [0 < __builtin_choose_expr(0, 0., 0)] = 0,           // OK
  12         [0 < __builtin_choose_expr(0, 0, 0.)] = 0,           // KO
  13         [0 && 0] = 0,                                           // OK
  14         [0 && 0.] = 0,                                          // KO
  15         [0 && __builtin_choose_expr(0, 0, 0)] = 0,              // OK
  16         [0 && __builtin_choose_expr(0, 0., 0)] = 0,             // OK
  17         [0 && __builtin_choose_expr(0, 0, 0.)] = 0,             // KO
  18         [0 + __builtin_types_compatible_p(int, float)] = 0,     // OK
  19 };
  20 
  21 /*
  22  * check-name: constexprness in binops and alike
  23  *
  24  * check-error-start
  25 constexpr-binop.c:3:12: error: bad constant expression
  26 constexpr-binop.c:4:19: error: bad integer constant expression
  27 constexpr-binop.c:7:12: error: bad constant expression
  28 constexpr-binop.c:9:12: error: bad integer constant expression
  29 constexpr-binop.c:12:12: error: bad integer constant expression
  30 constexpr-binop.c:14:12: error: bad integer constant expression
  31 constexpr-binop.c:17:12: error: bad integer constant expression
  32  * check-error-end
  33  */