8
9 static void (*g)(void) = c; // OK
10 static void (*h)(void) = &c; // OK
11
12 static int *i = &*&a; // OK
13 static int *j = &*b; // OK
14 static int *k = &*d; // KO
15
16
17 static void l(void) {
18 int a = 1;
19 static int *b = &a; // KO
20 }
21
22 static void m(void) {
23 static int a = 1;
24 static int *b = &a; // OK
25 }
26
27 /*
28 * check-name: address of static object constness verification.
29 * check-command: sparse -Wconstexpr-not-const $file
30 *
31 * check-error-start
32 constexpr-addr-of-static.c:6:17: warning: non-constant initializer for static object
33 constexpr-addr-of-static.c:14:19: warning: non-constant initializer for static object
34 constexpr-addr-of-static.c:19:26: warning: non-constant initializer for static object
35 * check-error-end
36 */
|
8
9 static void (*g)(void) = c; // OK
10 static void (*h)(void) = &c; // OK
11
12 static int *i = &*&a; // OK
13 static int *j = &*b; // OK
14 static int *k = &*d; // KO
15
16
17 static void l(void) {
18 int a = 1;
19 static int *b = &a; // KO
20 }
21
22 static void m(void) {
23 static int a = 1;
24 static int *b = &a; // OK
25 }
26
27 /*
28 * check-name: constexpr static object address
29 * check-command: sparse -Wconstexpr-not-const $file
30 *
31 * check-error-start
32 constexpr-addr-of-static.c:6:17: warning: non-constant initializer for static object
33 constexpr-addr-of-static.c:14:19: warning: non-constant initializer for static object
34 constexpr-addr-of-static.c:19:26: warning: non-constant initializer for static object
35 * check-error-end
36 */
|