xref: /illumos-gate/usr/src/tools/smatch/src/validation/constexpr-preop.c (revision dc5e7685b131559c0b7c622baee25a9a0ae50ada)
1 static int a[] = {
2   [+0] = 0,					// OK
3   [+__builtin_choose_expr(0, 0, 0)] = 0,	// OK
4   [+0.] = 0,					// KO
5   [+__builtin_choose_expr(0, 0, 0.)] = 0,	// KO
6   [-0] = 0,					// OK
7   [-__builtin_choose_expr(0, 0, 0)] = 0,	// OK
8   [-0.] = 0,					// KO
9   [-__builtin_choose_expr(0, 0, 0.)] = 0,	// KO
10   [~0] = 0,					// OK
11   [~__builtin_choose_expr(0, 0, 0)] = 0,	// OK
12   [!0] = 0,					// OK
13   [!__builtin_choose_expr(0, 0, 0)] = 0,	// OK
14   [!0.] = 0,					// KO
15   [!__builtin_choose_expr(0, 0, 0.)] = 0,	// KO
16 };
17 
18 /*
19  * check-name: Expression constness propagation in preops
20  *
21  * check-error-start
22 constexpr-preop.c:4:5: error: bad constant expression
23 constexpr-preop.c:5:33: error: bad constant expression
24 constexpr-preop.c:8:4: error: bad constant expression
25 constexpr-preop.c:9:4: error: bad constant expression
26 constexpr-preop.c:14:4: error: bad integer constant expression
27 constexpr-preop.c:15:4: error: bad integer constant expression
28  * check-error-end
29  */
30